Tipps & Tricks 05.05.2003, 14:15 Uhr

Bedingte Formatierung per Makro?

Ich habe mir privat eine Tabelle erstellt und möchte die Zellen entsprechend dem eingegebenen Kriterium einfärben. z.B. bei 50 die Zelle mit Farbe 1 (z.B. grün) bei 40 die Zelle mit Farbe 2 (z.B. gelb) bei 25 die Zelle mit Farbe 3 (z.B. rot) bei 15 die Zelle mit Farbe 4 (z.B. blau) bei 0 die Zelle mit Farbe 5 (z.B. grau) Mit der bedingten Formatierung ist es sehr schlecht zu lösen. Ist dies mit einem Macro zu lösen, und wenn ja, wie?
Folgendes Makro löst Ihr Problem.
Es checkt jeden Zellwert in Spalte A ab. Findet es einen entsprechenden Wert, dann weist er der Hintergrundzelle die gewünschte Farbe zu.
Werte und Farben sind am Anfang des Makros definiert (Z1 + F1 usw..). Wenn Sie also eine andere Farbe für einen Wert wünschen, brauchen Sie dies nur am Anfang zu ändern.
---------------------------------------
MAKRO ZUM KOPIEREN:
---------------------------------------
Sub BedingteFormatierung()
Dim Z1, Z2, Z3, Z4, Z5 As Integer
Dim F1, F2, F3, F4, F5 As String
Z1 = 50 'grün
F1 = 4
Z2 = 40 'gelb
F2 = 6
Z3 = 25 'rot
F3 = 3
Z4 = 15 'blau
F4 = 5
Z5 = 0 'grau
F5 = 15
Columns("A:A").Select 'Alte Farben entf.
Selection.Interior.ColorIndex = xlNone
[A1].Select 'Neue Markierungen setzen
Do Until IsEmpty(ActiveCell.Value)
If ActiveCell.Value = Z1 Then
ActiveCell.Interior.ColorIndex = F1
ActiveCell.Offset(1, 0).Select
ElseIf ActiveCell.Value = Z2 Then
ActiveCell.Interior.ColorIndex = F2
ActiveCell.Offset(1, 0).Select
ElseIf ActiveCell.Value = Z3 Then
ActiveCell.Interior.ColorIndex = F3
ActiveCell.Offset(1, 0).Select
ElseIf ActiveCell.Value = Z4 Then
ActiveCell.Interior.ColorIndex = F4
ActiveCell.Offset(1, 0).Select
ElseIf ActiveCell.Value = Z5 Then
ActiveCell.Interior.ColorIndex = F5
ActiveCell.Offset(1, 0).Select
Else
ActiveCell.Offset(1, 0).Select
End If
Loop
[A1].Select
MsgBox "***** Fertig! ******"
End Sub
---------------------------------------


Kommentare
Es sind keine Kommentare vorhanden.