Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
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
Inhaltsverzeichnis

If Abfrage für Zellen-Hintergrundfarbe

If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:14:04
Ingo
Hallo
Es geht um folgenden Teil eine VBA-Codes:

If Range("Status").Cells(irow) = "S" Then
BlaBlaBla
End If
Hier wird ja abgefragt, ob in der aktiven Zelle der Spalte "Status" "S" steht. Und wenn ja, wird "BlaBlaBla" ausgeführt.
Ich möchte nun mit der if-Abfrage fragen, ob die Hintergrundfarbe der Zelle "#FFFFCC" ist. Und bei ja soll dann "BlaBlaBla" ausgeführt werden.
Könnt Ihr mir da helfen; weil ich leider bisher nicht so richtig herausbekommen konnte, wie ich das machen kann.
Gruß
Ingo

35
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:19:39
onur
"Hier wird ja abgefragt, ob in der aktiven Zelle..." ?
Die AKTIVE Zelle ist immer ActiveCell, und nicht

Range("Status").Cells(irow)

AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:25:46
Ingo
OK dann habe ich mich wohl falsch ausgedrückt.
Jetzt aktuell lautet die entsprechende Codezeile ja wie folgt:

If Range("Status").Cells(irow) = "S" Then
Dort wird gefragt, ob der Buchstabe "S" dort steht.
Ich möchte aber nun nicht nach dem Buchstaben "S" fragen, sondern, ob die Hintergrundfarbe "#FFFFCC" ist. Also sinngemäs sowas wie das hier:

If Range("Status").Cells(irow).Hintergrundfarbe = "#FFFFCC" Then
Ist es so verständlicher, was ich meine?
Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:35:55
onur
Die Farbe einer Zelle (z.B. A1) ist immer :
Range("A1").Interior.Color
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:37:36
Ingo
Ah OK. Wäre es dann wie folgt richtig?

If Range("Status").Cells(irow).Interior.Color = "#FFFFCC" Then

AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:38:58
Oberschlumpf
und was genau spricht dagegen, dass du genau das mal ausprobierst, anstelle danach zu fragen?
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:40:57
onur
Lass die Gänsefüsschen weg, Gänsefüsschen enthalten nur TEXT.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:46:49
Ingo
Das funktioniert leider nicht.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:49:37
onur
&HFFFFCC
und nicht "#FFFFCC"
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:51:25
Ingo
Das funktioniert leider auch nicht.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:54:32
onur
DAS liegt wohl an deinem restlichen Programnmierversuch.
Guckst du hier:
https://www.herber.de/bbs/user/156930.xlsm
Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:00:14
onur
Wenn du es immer noch nicht hinbekommst, poste die Datei.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:02:37
Ingo
Das hier funktioniert bei mir seit vielen Jahren wunderbar:

If Range("Status").Cells(irow) = "S" Then
BlaBlaBla
End If
Und wenn ich Dich jetzt richtig verstanden habe, müsste das folgende doch auch funtionieren:

If Range("Status").Cells(irow).Interior.Color = &HFFFFCC Then
BlaBlaBla
End If
Oder hatte ich Dich evtl. doch einfach falsch verstanden und noch einen Fehler drin?
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:06:09
onur
Du siehst doch, dass es bei mir funktioniert.
Warum es bei dir nicht funktioniert, kann ich nur sehen, wenn ich die Datei habe.
Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:07:40
onur
Woher hast du denn den Farbcode "FFFFCC" her?
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:15:12
Ingo
Den Farbwert habe ich folgendermaßen ermittelt:
* Ich markiere die Zelle mit der Farbe.
* Rechte Maustaste "Zellen formatieren"
* Reiter "Ausfüllen"
* Button "weitere Farben"
* Reiter "Benutzerdefiniert"
* Und dann unten bei "Hex" steht "#FFFFCC"
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:16:18
onur
Poste die Datei ohne Daten.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:12:07
Ingo
Hallo
Ja das verstehe ich leider auch nicht. Meine Datei kann ich Dir leider nicht senden, weil diese viele Kundendaten usw. enthält.
Ich danke Dir aber natürlich trotzdem für die Hilfe.
Dann werde ich Vorhaben wohl aufgeben müssen.
Dafür sind meine VBA-Kenntnisse leider zu schlecht.
Ich vermute ja im Grunde, dass es irgendwie an der Farb-Abfrage liegt.
Der Oberschlumpf hatte mir ja geantwortet, wie ich mittels des VBA-Editor-Direkbereichs mit folgendem Code den Rückgabewert der Farbe ermitteln kann:

MsgBox Range("Status").Cells(irow).Interior.Color
Da bekomme ich aber immer nur einen Laufzeitfehler 1004.
Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:13:53
onur
Du kannst die Datei ohne irgendwelche Daten schicken, nur der Code interessiert. Lösche einfach die Dateien.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:26:15
onur
Teste mal:
Range("A1").Interior.Color = &HFFFFCC
Schau nach, ob A1 diese Farbe bekommt.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:33:53
Ingo
Ja dann wird die Zelle so hell Türkis-Blau.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:34:57
onur
Siehst du! Der Code läuft und es liegt an deinem RESTCODE.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 15:47:36
Ingo
Hmmm vielleicht kommen wir hier jetzt der Sache auf die Schliche.
Mit dem folgenden Code von Dir wird die Hintergrundfarbe ja auf Türkis gesetzt.

Range("A1").Interior.Color = &HFFFFCC
Meine Zelle, dessen Farbe ich ja abfragen will, hat aber ein Hellgelb als Hintergrundfarbe.
Kann es demnach sein, dass es bei mir nicht funktioniert, weil die if-Frage ja quasi lautet:
* Wenn die Hintergrundfarbe Türkis ist, mache "BlaBlaBla".
Die Frage bei müsste ja aber lauten:
* Wenn die Hintergrundfarbe Hellgelb ist, mache "BlaBlaBla".
Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 16:03:30
onur
Dann hast du den falschen Farbcode.
Entweder direkt als RGB eingeben oder als Dezimal auslesen
x=Range("A1").interior.color
und diese Zahl x einsetzen.
FFFFCC bedeutet schliesslich: ROT 255; GRÜN 255; BLAU 208 UND DAS IST TÜRKIS.
Die Anzeige des Farbcodes in Excel ist vertauscht. Es wir BGR angezeigt, also müsstest du CCFFFF nehmen.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 16:17:02
Ingo
Ja es scheint tatsächlich irgendwie am falschen Farbwert gelegen zu haben. Der folgende Code funktioniert jetzt genau, wie er soll:

If Range("Status").Cells(irow).Interior.Color = 13434879 Then
BlaBlaBla
End If

Anzeige
Blödsinn, von mir, Sorry!
24.12.2022 15:31:31
mir,
Hi,
...und vllt auch Fehler von jedem anderen Antworter (hab nich jede Antwort gelesen)
Der Code

Range("Status").Cells(irow).Interior.Color
ist Quatsch!
ENTWEDER
Range...
ODER
Cells...
und nich beides zusammen!
änder meinen Vorschlag mal um in

Range("DeineZelle").Interior.Color
und anstelle von "DeineZelle" gibst du genau die Zelle in A1-Schreibweise an, um die es geht.
Wenn DeineZelle z Bsp C23 ist, dann der Code so

Range("C23").Interior.Color
den Rest meines Codes musst du natürlich auch verwenden - ich hab jetzt nur den Teil gezeigt, der falsch ist.
ach ja...du weißt ja, wenn Frage noch offen, dann setz doch den Haken - is doch nich so schwer, oder?
Ciao
Anzeige
AW: Blödsinn, von mir, Sorry!
24.12.2022 15:40:56
mir,
Ich habe jetzt mal mittels Direktbereich und folgendem Code das hier probiert:

MsgBox Range("B3").Interior.Color
Da wird mir dann !13434879" zurück gegeben.
Ist das jetzt evtl. der Farbwert nach dem ich per if Abfragen muss?
Den Haken "Frage noch offen" setze ich übrigens immer.
AW: Blödsinn, von mir, Sorry!
24.12.2022 15:45:23
mir,
Das ist doch nur eine andere Schreibweise (Dezimal statt Binär). Es liegt am Rest.
Was funktioniert nicht? Welche Fehlermeldung genau und wo genau?
AW: Blödsinn, von mir, Sorry!
24.12.2022 16:00:28
mir,
Hallo
Es scheint doch an der Schreibweise des Farbwertes gelegen zu haben.
Der folgende Code funktioniert jetzt:

If Range("Status").Cells(irow).Interior.Color = 13434879 Then
BlaBlaBla
End If

Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:38:04
Oberschlumpf
Hi Ingo,
wenn deine Frage noch nicht beantwortet ist, dann nutz doch bitte die Option "frage noch offen..." - musst du natürlich nich tun, is nur ne Bitte von mir
versuch mal das hier

If Range("Status").Cells(irow).Interior.Color = "#FFFFCC" Then
...usw
End If
Ich weiß jetzt nicht, ob "#FFFFCC" wirklich als Wert zurückgegeben wird.
Markier mal eine Zelle mit eben der Farbe, und starte dann im Direktfenster diesen Code

MsgBox Range("Status").Cells(irow).Interior.Color
DAS, was in der MsgBox angezeigt wird, ist der Rückgabewert für deine If-Abfrage, die du entsprechend anpassen musst, wenn "#..." nicht richtig ist.
Hilfts?
Ciao
Thorsten
Anzeige
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:49:55
Ingo
Wenn ich in den VBA-Editor-Direktbereich das folgende eingebe, bekomme ich einen "Laufzeitfehler 1004".
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 16:17:33
Yal
Hallo Ingo,
weil solang die Sub nicht läuft, ist iRow nicht definiert.
Probiere:
Debug.Print Range ("Status").Cells(1).Interior.Color
Schönes WE
Ach so: schönes Weihnachten auch
VG
Yal
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 18:53:12
Ingo
Ah ja alles klar. Ich verstehe. Inzwischen konnte ich die ganze Sacher aber lösen. Vor Allem wieder mit der tollen Hilfe hier.
AW: If Abfrage für Zellen-Hintergrundfarbe
24.12.2022 14:56:56
Ingo
Hallo Thorsten
* Ich markiere eine Zelle, die die besagte Hintergrundfarbe hat.
* Dann starte ich den VBA-Editor mit Alt+F11
* Dann starte ich den Direktbereich mit STRG+G
* Dort gebe ich dann "MsgBox Range("Status").Cells(irow).Interior.Color" ein und drücke die Enter-Taste.
Hattest Du das so gemeint?
Ich bekomme dann diesen Laufzeitfehler 1004.
Mache ich da was falsch?
Gruß
Ingo
AW: If Abfrage für Zellen-Hintergrundfarbe
25.12.2022 12:04:41
Herbert_Grom
Hallo Ingo,
probier es mal mit diesem Farbcode: #FFFF99
Das sollte hellgelb ergeben.
Servus
AW: If Abfrage für Zellen-Hintergrundfarbe
25.12.2022 12:11:07
Ingo
Hallo
Ich habe es inzwischen wie folgt lösen können:

If Range("Status").Cells(irow).Interior.Color = 13434879 Then
BlaBlaBla
End If
Gruß
Ingo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige