[Eine Seite zurück] [Übersicht] [Eine Seite vor]

Benutzung auf eigene Gefahr !
Keine Garantie für garnichts !

Bedingte Formatierung erstellen

Sprache / Programm: Excel ab Version 2000
Beschreibung

In Excel kann man mit bedingten Formatierungen bewirken, dass sich die Formatierung der Zelle abhängig vom Inhalt der Zelle verändert.

Dieses Makro erzeugt eine spezielle bedingte Formatierung, nämlich ein Ampelformat. Wer in Excel Listen verwaltet, der kann wichtige und unwichtige oder problematische und problemlose Listeneinträge mit einem roten, gelben oder grünen Hintergrund kennzeichnen. Das zeigt, ob der Inhalt der zugehörigen Zeile wichtig oder gefährdet ist (rot), ob der Inhalt erhöhte Aufmerksamkeit erfordert (gelb) oder ob alles gut läuft (grün).

Mit Hilfe des Makros kann man einen Zellbereich so formatieren, dass beim Eintrag eines R oder r (red, rot) der Zellhintergrund rot wird, bei Eintrag eines Y oder y  (yellow) gelb wird und bei Eintrag eines G oder g (green) grün erscheint. Alle anderen Einträge entfärben die Zelle wieder.

Durch diese Art der Formatierung ist es schnell möglich, einen Status (rot/gelb/grün) zu ändern und über den Autofilter auszuwählen ("Zeige nur Zeilen mit roter Markierung").

VBA-Quelltext
Public Sub BedingtesAmpelFormat()
    Dim Wert As Variant
   
    With Selection
        .HorizontalAlignment = xlCenter
        .VerticalAlignment = xlCenter
       
       
    '*** Bedingte Formatierung anlegen
        .FormatConditions.Delete
   
        ' Bedingung für roten Zellhintergrund
        With .FormatConditions.Add(xlCellValue, xlEqual, "=""R""")
            .Font.ColorIndex = 3
            .Interior.ColorIndex = 3
        End With
       
        ' Bedingung für grünen Zellhintergrund
        With .FormatConditions.Add(xlCellValue, xlEqual, "=""G""")
            .Font.ColorIndex = 50
            .Interior.ColorIndex = 50
        End With
       
        ' Bedingung für gelben Zellhintergrund
        With .FormatConditions.Add(xlCellValue, xlEqual, "=""Y""")
            .Font.ColorIndex = 6
            .Interior.ColorIndex = 6
        End With
       
       
    '*** Graue Rahmen ziehen
        For Each Wert In Array(xlEdgeLeft, xlEdgeTop, xlEdgeBottom, xlEdgeRight, xlInsideHorizontal)
            With .Borders(Wert)
                .LineStyle = xlContinuous
                .Weight = xlThin
                .ColorIndex = 15
            End With
        Next Wert
        ' Keine Diagonalen
        .Borders(xlDiagonalDown).LineStyle = xlNone
        .Borders(xlDiagonalUp).LineStyle = xlNone
       
    End With
End Sub
Argumente der Funktion/Prozedur

Keine.

Der Zellbereich, auf den diese spezielle bedingte Formatierung angewendet werden soll, wird markiert, dann wird über das Menü 'Extras' -> 'Makro' -> 'Makros' -> 'BedingtesAmpelFormat' das Makro ausgeführt.