Bedingte Formatierungen in ein Excelblatt m. RGB Farben
22.07.2024 07:39:10
Matthias
eigentlich sind bedingte Formatierungen ganz praktisch und gut. Ich habe für unsere gemeinsamen Planungen eine Liste mit 10 bedingten Formatierungsregeln auf dem gesamten Blatt. Dann sieht es gut und übersichtlich aus. Leider "zerdeppert" diese immer wieder durch "Kopier- und Verschiebeaktionen" von den Anwendern.
Ich habe schon den Ansatz verfolgt, Änderungen an den bedingten Formatierungen "irgendwie zu verhindern/zu sperren"; das klappt auch nicht so wie gedacht!
Nun wäre ich mit Holzhammermethode hergegangen, beim Öffnen der Datei ein kurzes VBA loslaufen zu lassen, welches knallhart alle bedingten Formatierungen löscht, und diese wieder komplett sauber reinschreibt. Das klappt soweit auch prima. Hab mal den ersten Wurf hier her kopiert, bitte nicht auslachen, ist noch recht "hölzern".
Was ich nun nicht hinbekommen habe, auch keine Doku gefunden habe:
Es wäre klasse, wenn man auch bedingte Formatierungen, die z.B. einen Zellenhintergrund im RGB Farb Modus ausfüllen können.
(nicht nur die "classic Excel Farbcodes")
Hierzu habe ich weder im Netz was gefunden, noch habe ich durch diverse Versuche hinbekommen.
Hat wer das schon mal hinbekommen, oder hat diesbezüglich Erfahrungen.
Danke Euch!
' *********************************************************************************************************************
' Bedingte Formatierung im Kalender zurückschreiben, aus Parameter_BF auslesen
' *********************************************************************************************************************
Sub BedingteFormatierungSchreiben()
' *********************************************************************************************************************
' um dieses Workbook geht´s
' *********************************************************************************************************************
Set Roadmap = ThisWorkbook.Worksheets("24") ' Der MB Kalender
Dim rngC As Range
Dim Bereich As String
Dim Formel As String
Dim Fuellfarbe As Long
Dim Fontfarbe As Integer
Dim Fontstyle As Boolean
Dim ZeileBF As Integer
On Error Resume Next
' *********************************************************************************************************************
' zuerst alle bedingten Formatierungen löschen
' *********************************************************************************************************************
For Each rngC In ActiveSheet.UsedRange
rngC.FormatConditions.Delete
Next
' *********************************************************************************************************************
' Schleife lese bedingte Formatierung und erstelle sie
' *********************************************************************************************************************
For ZeileBF = 1 To ThisWorkbook.Worksheets("Parameter_BF").Cells(Rows.Count, 1).End(xlUp).Row
Bereich = ThisWorkbook.Worksheets("Parameter_BF").Cells(ZeileBF, 1).Value ' aus Spalte A lesen
Formel = ThisWorkbook.Worksheets("Parameter_BF").Cells(ZeileBF, 3).Value ' aus Spalte C lesen
Fuellfarbe = ThisWorkbook.Worksheets("Parameter_BF").Cells(ZeileBF, 2).Interior.ColorIndex ' aus Spalte B die Formatierung holen
Fontfarbe = ThisWorkbook.Worksheets("Parameter_BF").Cells(ZeileBF, 2).Font.ColorIndex
Fontstyle = ThisWorkbook.Worksheets("Parameter_BF").Cells(ZeileBF, 2).Font.Bold
Set rngC = ActiveSheet.UsedRange.FormatConditions(ZeileBF).AppliesTo
With ActiveSheet.Range(Bereich).FormatConditions.Add(xlExpression, Formula1:=Formel)
With .Interior
.ColorIndex = Fuellfarbe
End With
With .Font
.ColorIndex = Fontfarbe
.Bold = Fontstyle
End With
End With
Next ZeileBF
' *********************************************************************************************************************
' kurze Meldung
' *********************************************************************************************************************
MsgBox ("Leute, ich habe meinen Job erledigt!")
' *********************************************************************************************************************
' Bedingte Formatierung im Kalender zurückschreiben, aus Parameter_BF auslesen
' *********************************************************************************************************************
End Sub
Anzeige