Guten Tag den Mithelfenden im Forum,
gibt es einen Unterschied in den Begriffen Hintergrundfarbe und Zellfarbe?
Wo finde ich die wirklich gültigen Interior.Colorindizes?
vorweg Hintergrund meiner Frage (Das Beispiel ist reduziert auf 3 Zellen):
Zellen A1, A2, A3 haben die Hintergrundfarbe mit dem excel Standardgrün,
sind Zahlen oder auch nur eine Zahl in einer Zelle eingetragen, so wird mit bedingter Formatierung
das Maximum mit excel Standardorange eingefärbt (verkürzt dargestellt, da gibt es noch eine Hilfstabelle).
Mit vba habe ich ein kleines Makro geschrieben, das die Inhalte der Zellen löschen soll, nur nicht das Maximum.
If Range("A1").Interior.ColorIndex = 43 Then Range("A1").ClearContents
If Range("A2").Interior.ColorIndex = 43 Then Range("A2").ClearContents
If Range("A3").Interior.ColorIndex = 43 Then Range("A3).ClearContents
Ist das Makro fertig, soll der Cursor in die Zelle A4 springen und diese Zelle färben.
Range("A4").Select
Selection.Interior.ColorIndex = 43
Ergebnis: Das Makro tut nicht das, was ich gerne möchte. Das Makro löscht alle 3 Inhalte und färbt Zelle A4 schwarz.
A) "Glaube" kann falsch sein: Ich glaubte, dass Index 43 Standardgrün ist und Index 44 Standardorange ist.
Das ist offensichtlich falsch, auch wenn es dazu einige Farbtabellen mit Zuordnungen im web gibt;
ja, vielleicht ist auch mein Befehl falsch. Der Interior.Colorindex 43 in Zelle A4 liefert ein " schwarz".
Also könnte 43 in den Zellen A1:A3 auch falsch sein.
B) Nachsehen bei
https://learn.microsoft.com/de-de/office/vba/api/excel.colorindex
Dort ist 43 ein viel dunkleres Grün und 44 keinesfalls orange. Nun nehme ich aus der MS-Farbindextabelle die Ziffer 17
als Testfarbe für A4 und erhalte ein dunkles Blau, aber nicht die von MS angezeigte Farbe.
Zwischenfazit für mich: Ich müsste mich mit den Indizes durchtesten, um die gewünschte Farbe Standardgrün oder Standardorange zu finden.
Es könnte ja auch sein, das das Standardorange aus der bedingten Formatierung sich nur über die Hintergrundfarbe drüber legt, die Zelle zwar orange
aussieht, aber mit der Hintergrundfarbe Standardgrün.
Dies habe ich getestet, in dem ich von der Zelle mit dem Maximum die Hintergrundfarbe Standardhellblau nutze, das Maximum legt orange drüber;
siehe da, das Makro löscht alle Inhalte, aber nicht die Zelle mit Hintergrundfarbe hellblau.
Endfazit:
Ich sehe 2 Probleme:
Welche Tabelle (Quelle?) zeigt die tatsächlichen Interior.Colorindizes mit den wirklichen Farben?
Wie muss ich die vba-Befehle ändern, damit die Zelle, die orange erscheint, inhaltlich nicht gelöscht wird, aber alle anderen Zellen?
An dieser Stelle: Herzlichen Dank für das Einlesen in meinen langen Text und vielleicht gibt es ja eine Lösung, die weiter hilft.
Viele Grüße Bernhard