Supportnet / Forum / Tabellenkalkulation
ExcelVBA: Auslesen Hintergrundfarbe, die durch bedingte Formatierugn entstanden ist
Frage
Hi @all,
ich habe eine Excel 2003 Tabelle, in der bestimmte Ergebniswerte bestimmte bedingte Formatierungen bewirken. Sagen wir mal (einfachster Fall), wenn in einer Zelle eine 1 steht, wir der Hintergrund grün.
VBA soll die Farben finden, die durch diese bedingte Formatierung entstanden ist. Beispielcode:
For i = 1 To 6
Cells(i, 2) = Cells(i, 1).FormatConditions(1).Interior.ColorIndex
Next i
liefert aber immer 4, ganz gleich, ob die Zelle durch eine bedingte Formatierung grün ist oder nicht.
Wie kann ich Hintetrgrundfarben von Zellen in VBA auslesen, die durch bedingte Formatierungen eingestellt werden?
NB.: es ist nicht möglich, nach dem Zellwert selbst zu suchen. In der wirklichen Anwendung ist das ein Kalender, und die Feiertage werden durch bedingte Formatierung markiert. Bewegliche Feste liegen aber auf veränderlichen Zellen.
Antwort 1 von Hajo_Zi
Antwort 2 von ExcelUser
Oops... *räusper* ich war der naiven Meinung, daß ich nur die falsche Eigenschaft erwischt habe odersowas. Aber vielen Dank dafür, damit muß ich erstmal ein wenig rumprobieren...
Antwort 3 von ExcelUser
Also, ich kämpfem ich gerade durch den Code... in einem BeispielXLS funktioniert das. Ich frage mich aber, wie ich es hinkriege, mit diesem Code die Color-Eigenschaft für eine als cells(i, j) referenzierte Zelle zu finden? Ein Algorithmus zählt mit i (für die Zeile) und j (für die Spalte) durch verschiedene Bereiche, und soll jeweils wenn er eine bestimmte Farbe findet reagieren. Mit dem Programm müßte ich jeweils die zu untersuchende Zelle aktivieren, was die Sache stark verlangsamen würde...
Antwort 4 von Hajo_Zi
Hallo Nick,
darum hatte ich auch geschrieben Du kennst Dich ausgezeichnet mit VBA aus. In VBA kann auf select zu 99,9% verzichtte werden und in diesem Fall bestimmt auch. Da dieses Gebiet aber sehr kompliziert und Zeitaufwendig ist befasse ich mich damit nicht und liefere nur einen Ansatz.
Gruß Hajo
darum hatte ich auch geschrieben Du kennst Dich ausgezeichnet mit VBA aus. In VBA kann auf select zu 99,9% verzichtte werden und in diesem Fall bestimmt auch. Da dieses Gebiet aber sehr kompliziert und Zeitaufwendig ist befasse ich mich damit nicht und liefere nur einen Ansatz.
Gruß Hajo
Antwort 5 von ExcelUser
Hi,
ich habe schon eine ganz andere Lösung gefunden... die ist komplexer als ich dachte, daß es sein muß, aber viel einfacher als das. Ich hätte nicht gedacht, daß das Auslesen der Ergebnisse bedingter Formatierungen so schwierig ist... trotzdem vielen Dank, hab' was dazugelernt! :-)
ich habe schon eine ganz andere Lösung gefunden... die ist komplexer als ich dachte, daß es sein muß, aber viel einfacher als das. Ich hätte nicht gedacht, daß das Auslesen der Ergebnisse bedingter Formatierungen so schwierig ist... trotzdem vielen Dank, hab' was dazugelernt! :-)

