Bedingte Formatierung aus Tabellenblatt in Makro übernehmen
27.03.2025 16:46:19
Ina.Laska
ich habe mir eine Statusübersicht für Projekte gebastelt in Form eines Gantt-Charts, die aufgrund von bedingten Formatierungen die einzelnen Phasen in einem dynamischen Kalender zeigt. Wenn man neue Daten eingibt, muss ein Makro gestartet werde, dass die gewünschte bedingte Formatierung herstellt. Ohne das Makro müsste bei jedem Einfügen einer neuen Zeile die bedingte Formatierung erst angepasst werden.
Wenn ich die Namen der Projekte ändere oder auch die Farbe im Gantt-Chart muss ich dazu jedes Mal das Makro anpassen. Um das Ganze zu vereinfachen, würde ich gern die Formatierung in einer zweiten Tabelle festlegen.
Ich habe zum besseren Verständnis eine Beispieldatei angefügt: https://www.herber.de/bbs/user/176467.xlsm
So stelle ich mir das Ganze in der Theorie vor:
Phase 1 soll jetzt Phase A heißen und nicht mehr rot sondern rosa sein. Dazu möchte ich Phase 1 in Zelle A2 mit Phase A überschreiben und die Farbe in Spalte B2 in die gewünschte Farbe ändern. Um die neue Farbe in das Makro übernehmen zu können, müsste dazu zunächst den Farbcode ausgelesen werden, der dann als Variable ins Makro eingebaut wird.
Hat dafür jemand eine Lösung?
Der Code ist ziemlich lang, daher habe ich mal einen Teil rauskopiert, der hier relevant ist:
Range("H9:RD999").Select
Range("H9:RD999").Activate
Selection.FormatConditions.Add Type:=xlExpression, Formula1:= _
"=UND(JAHR(H$7)+MONAT(H$7)/100>=JAHR($E9)+MONAT($E9)/100;JAHR(H$7)+MONAT(H$7)/100=JAHR($F9)+MONAT($F9)/100;$D9=Farben!$A$5)"
Selection.FormatConditions(Selection.FormatConditions.Count).SetFirstPriority
With Selection.FormatConditions(1).Interior
.PatternColorIndex = xlAutomatic
.Color = 5296274
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.FormatConditions(1).StopIfTrue = False
Anzeige