Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
304to308
304to308
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

noch ein ColorIndex Problem

noch ein ColorIndex Problem
09.09.2003 11:06:08
panther
Kann mir jemand von Euch Excel-Pros hierbei helfen?

Ich versuche über eine Schleife Hintergrundfarben von Zellen abzufragen.
Meine Schleife hat in etwa folgenden Aufbau:

if ColorIndex = 22 (->hellrot)
then mache irgenwas
elseif ColorIndex = 36 (->hellgelb)
then mache was anderes
elseif ColorIndex = 35 (-> hellgrün)
then mache noch was anderes
else
mache noch was ganz anderes

Obwohl in den zu untersuchenden Zellen die hellen Farben als Hintergrund verwendet werden, wird immer in den ELSE-Zweig gesprungen.
Als ich mir zur Überprüfung vorher mit einer Messagebox den Farbindex von z.B. einer hellgelben Zelle anzeigen haben lasse war das Ergebnis: ColorIndex = -4142
Diesen Wert bekomme ich für alle drei hellen Farben angegeben. Nur die dunklen werden richtig erkannt.

Das Problem muss irgendwie mit meiner Farbwahl zu tun haben:
Dunkle Farben (rot=3, gelb=44, grün=43) und
Helle Farben (hellrot=22, hellgelb=36, hellgrün=35)

Wenn ich oben genannte Schleife über die dunklen Farben laufen lasse, funktioniert sie einwandfrei...

Bitte Hilfe, ich weiß echt nicht mehr weiter...

panther

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: noch ein ColorIndex Problem
09.09.2003 11:08:22
Hajo_Zi
Hallo Panther

ist Dir schon mal aufgefallen das die meisten hier min. den Vornamen angeben.

Ist die Farbe über bedingte Formatierung gesetzt??

Gruß Hajo
AW: noch ein ColorIndex Problem
09.09.2003 11:12:21
Christoph Dümmen
Hallo Panther,

Hast Du das Objekt angegeben?
select case myCell.interior.colorindex
case 22
machwas....

Christoph
AW: noch ein ColorIndex Problem
09.09.2003 11:27:54
Caroline
Hallo Christoph, hallo Hajo,

ich dachte Spitznamen sind in diesen Foren üblich...
Aber um das ganze persönlicher zu machen: Ich bin Caroline

Der Ausschnitt sieht so aus:
und es funktioniert ja auch, wenn die in der IfAbfrage gewählten Farben 3,43,44 sind.
Sobald aber 22,36,35 eingesetzt werden wird die Farbe beim ersten MsgBox-Check nicht richtig erkannt, sondern gibt w.g. -4142 zurück?!

Ich weiß echt nicht woran das liegt

If .Cells(q, 3) = Int(Cells(u, 3)) Then
MsgBox "Cells(" & u & " ,19) =
ColorIndex: " & Cells(u, 19).Interior.ColorIndex

If .Cells(u, 19).Interior.ColorIndex = 3 Then
astatusTPM5(c) = 1
MsgBox "bin in if"
ElseIf .Cells(u, 19).Interior.ColorIndex = 36 Then
astatusTPM5(c) = 2
MsgBox "bin in 1. Elseif"
ElseIf .Cells(u, 19).Interior.ColorIndex = 43 Then
astatusTPM5(c) = 3
MsgBox "bin in 2. Elseif"
Else
astatusTPM5(c) = 0
MsgBox "bin in Else"
End If
MsgBox "astatusTPM5(" & c & ") = " & astatusTPM5(c)
c = c + 1
End If
Anzeige
AW: noch ein ColorIndex Problem
09.09.2003 11:35:45
Christoph Dümmen
Caroline,

schau doch mal, ob sich das Makro auf die richtigen Zellen bezieht.
-4142 heißt nämlich, dass keine Farbe zugewiesen ist.
Ansonsten lade doch mal die Mappe hoch.

Gruß
Christoph
AW: noch ein ColorIndex Problem
09.09.2003 12:51:31
Caroline
Hallo Ihr zwei,

Da das Spreadsheet auch noch einiges anderes vorher macht, hab ich nur den Teil rauskopiert, den ich für nötig gehalten habe.
Unter diesem Link ist also das ganze File

https://www.herber.de/bbs/user/946.xls

Der Teil an dem ich hänge ist unterhalb dem Kommentar...
'Suche nach abgeschlossenen Terminen in den TPs
'test2 bisher nur fuer M5...
... zu finden.

Ich habe mit einer Msgbox überprüft, ob die richtige Zelle überprüft wird und die Zelle stimmt.

Mein Problem bezieht sich (erstmal) auf die Spalte S.
Es soll in dem unteren Block (Zellen sind richtig gefärbt) nachgesehen werden, ob (gegliedert nach Teilprojekten in C7-C11) ein Termin "hellrot" ist, wenn ja, soll die entsprechende Zelle (S7-S11) hellrot gefärbt werden.
Gibt es kein hellrot, dann wird nach hellgelb gesucht und eingetragen, sonst hellgrün eingetragen. Verstanden?! Oder zu schlecht erklärt?

Ich glaube auch, dass meine Vorgehensweise richtig ist, bzw. funktionieren sollte, wenn die hellen Farben erkannt würden.
Die dunklen Farben sind bei der Suche egal, da soll der Else-Zweig verwendet werden. (Geschieht ja schon)

Wie ich mir das gedacht habe:
1. Feld von Integer Variablen anlegen (astatusTPM5(a)) , in die dann die Abfrageergebnisse eingetragen werden.
Zuerst alle Statusse vom Teilprojekt 1
2. Schleife über diese Ergebnisse und daraus resultierende Färbung der Zelle(S7)im oberen Abschnitt.

Dann das gleiche wieder für Teilprojekt 2
usw.

Das kann doch echt nicht so schwer sein - ich ärger mich grad über meine Unwissenheit!

Danke für Eure Hilfe!!
Weiß das wirklich zu schätzen...

Anzeige
AW: noch ein ColorIndex Problem
09.09.2003 12:57:19
Hajo_Zi
Hallo Caroline

hatte ich nicht in einem Beiträge schon gefragt ob die Farbe mittels bedingter Formatierung erstellt wird???

Bedingte Formatierung auslesen ist das komplizierteste was ich kenne. Auf meinen Hompage findest Du dazu einen Code. Adresse unter Profile.

Gruß hajo
AW: noch ein ColorIndex Problem
09.09.2003 13:31:17
caroline
Hallo Hajo,

oje, hab ich übersehen, der Code ist nämlich nicht komplett von mir, deswegen hatte ich das nicht im Kopf.

Kann ich das ganze nicht umgehen, indem ich anstatt diesem Block
*******************
.Cells(u, 57).ClearContents
.Cells(u, 55).FormatConditions.Delete
.Cells(u, 55).FormatConditions.Add Type:=xlExpression, Formula1:="=$BN$" & u & ">=0"
.Cells(u, 55).FormatConditions(1).Interior.ColorIndex = 35
.Cells(u, 55).FormatConditions.Add Type:=xlExpression, Formula1:="=$BN$" & u & "<-14"
.Cells(u, 55).FormatConditions(2).Interior.ColorIndex = 22
.Cells(u, 55).FormatConditions.Add Type:=xlExpression, Formula1:="=$BN$" & u & "<0 & $BK$" & u & ">=-14"
.Cells(u, 55).FormatConditions(3).Interior.ColorIndex = 36
*************************

eine zusätzliche If-Schleife wie einbaue:

.Cells(u, 57).ClearContents
.Cells(u, 55).FormatConditions.Delete
If .Cells(u, 66)>= 0 Then
.Cells(u, 55).Interior.ColorIndex = 35
ElseIf .Cells(u, 66)< -14 Then
.Cells(u, 55).Interior.ColorIndex = 22
ElseIf .Cells(u, 66) < 0 And .Cells(u, 66) >= -14 Then
.Cells(u, 55).Interior.ColorIndex = 36
End If
Anzeige
AW: noch ein ColorIndex Problem
09.09.2003 13:37:01
Hajo_Zi
Hallo Caroline

ich kann jetzt hier nicht testen, da ich beim Lehrgang bin. Aber ich vermute mal Du löscht mit Cells(u, 55).FormatConditions.Delete die bedingte Formatierung. Wozu ist Sie den da, wenn Du Sie jetzt löscht.

Gruß hajo
AW: noch ein ColorIndex Problem
09.09.2003 13:51:34
caroline
keine Ahnung... ist w.g. von jemand anders,
aber egal, die Schleife funktioniert anstatt der bedingten Formatierung und meine hellen Farben werden jetzt auch angenommen!

Herrlich!

Nächstes Problem... aber da wurschtel ich erstmal noch ein bischen bevor ich Dich wieder von Deinem Lehrgang abhalte.

Aber schon mal Herzlichen Dank für bisher!
Anzeige
Danke für die Rückmeldung oT
09.09.2003 13:53:05
Hajo_Zi
AW: noch ein ColorIndex Problem
09.09.2003 12:56:16
Caroline
... hatte zum Testen die If-Abfrage-Werte auf die dunklen Werte gesetzt (3, 44, 43).
Die sollen natürlich eigentlich 22, 36, 35 sein.

Entschuldigung...
AW: noch ein ColorIndex Problem
09.09.2003 11:43:36
Hajo_Zi
Hallo Caroline

das war ja nur der halbe Code. Ich habe ihn mal lauffähig gemacht und er läuft nach meiner Meinung Fehlerfrei


Sub test()
Dim astatusTPM5(2) As Integer
q = 1
u = 2
C = 1
With ActiveSheet
.Cells(u, 19).Interior.ColorIndex = 36
If .Cells(q, 3) = Int(Cells(u, 3)) Then
MsgBox "Cells(" & u & " ,19) = ColorIndex: " & Cells(u, 19).Interior.ColorIndex
If .Cells(u, 19).Interior.ColorIndex = 3 Then
astatusTPM5(C) = 1
MsgBox "bin in if"
ElseIf .Cells(u, 19).Interior.ColorIndex = 36 Then
astatusTPM5(C) = 2
MsgBox "bin in 1. Elseif"
ElseIf .Cells(u, 19).Interior.ColorIndex = 43 Then
astatusTPM5(C) = 3
MsgBox "bin in 2. Elseif"
Else
astatusTPM5(C) = 0
MsgBox "bin in Else"
End If
MsgBox "astatusTPM5(" & C & ") = " & astatusTPM5(C)
C = C + 1
End If
End With
End Sub


Gruß hajo
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige