116 Aufrufe
Gefragt in Tabellenkalkulation von gerdb Einsteiger_in (35 Punkte)

Hallo,

mit der Funktion "Farbe" läßt sich ja einfach die Zahl der Zellfarbe auslesen (z. B. Gelb = 6)

Public Function farbe(zelle) As Integer
farbe = zelle.Interior.ColorIndex
End Function

Das funktioniert aber nicht, wenn die Farbe durch eine "Bedingte Formatierung" erstellt wurde. Da wird immer die Zahl "-4142" (= keine Farbe) ausgegeben.

Was mache ich falsch?

3 Antworten

+1 Punkt
Beantwortet von
farbe = zelle.FormatConditions(1).Interior.ColorIndex
+1 Punkt
Beantwortet von xlking Experte (1.5k Punkte)

Hi Gerd

du machst nichts falsch. Wie du bereits geschrieben hast ist das einfach nicht möglich, denn die Zelle hat ja in Wirklichkeit keine Farbe hinterlegt. Per Bedingter Formatierung wird die Zelle auf einem anderen Weg gefärbt. Wenn du diese Farbe auslesen willst musst du die Bedingung die zu dieser Formatierung führt nachvollziehen. z.B. =Wenn(A1<10;6;wenn(A1<20;3;-4142))

Wenn du die Farbe in der bedingten Formatierung häufig änderst musst du natürlich eine benutzerdefinierte Funktion einbauen, die die Farbe ausliest.

z.B. =Wenn(A1<=10;fc(A1;1);wenn(A1<=20;fc(A1;2);Farbe(A1)))

Als Code verwendest du dann die Function

Function Fc(Bereich As Range, zahl As Integer) As Long
  Fc = Bereich.FormatConditions(zahl).Interior.ColorIndex
End Function

Gruß Mr. K.

0 Punkte
Beantwortet von gerdb Einsteiger_in (35 Punkte)
Danke für Eure Hilfe!

GerdB
...