Wie Excel beim Formatieren bedingungslos gehorcht
Per Makro zur bedingten Formatierung mit mehr als drei Bedingungen.
Dieses Makro nehmen Sie wie folgt in Betrieb: Öffnen Sie Excel und wechseln Sie zum Visual Basic Editor. Das geht am schnellsten über die Tastenkombination «Alt» + «F11». Doppelklicken Sie nun links in der Baumliste bei «VBAProject > Microsoft Excel Objekte» auf «Diese Arbeitsmappe». Es erscheint ein Dialogfenster, in dem Sie oben zwei Dropdown-Listen vorfinden. Im ersten setzen Sie die Auswahl auf «Workbook», im zweiten auf «SheetChange». Excel erzeugt nun ein Codegerüst, das Sie für Ihr Makro verwenden. Fügen Sie nun dazwischen den Code für die automatischen Formatierungen ein. Die Ausgangslage sind die beiden folgenden Zeilen:
Select Case Target.Value
…
End Select
Anstelle der drei Punkte geben Sie nun alle Werte an, die Sie mit einer separaten Farbe markieren wollen. Das tun Sie mit einem «Case»-Statement:
Case 5
Target.Interior.ColorIndex = 5
Das heisst auf gut deutsch: Zellen mit der Zahl 5 werden mit der Farbe mit dem Index 1 markiert. Fügen Sie für jede Bedingung einen separaten «Case»-Block hinzu.
Sie können nicht nur Zahlen angeben, sondern auch Textinhalte, diese müssen dann aber in Anführungszeichen gesetzt werden:
Case "Ferien"
Target.Interior.ColorIndex = 8
Soll zur besseren Lesbarkeit die Textfarbe auf weiss gesetzt werden, tun Sei das mit folgender Code-Zeile:
Target.Font.ColorIndex = 2
Bei «ColorIndex» können Sie folgende Codes verwenden:
| Schwarz | 1 |
| Weiss | 2 |
| Rot | 3 |
| Hellgrün | 4 |
| Blau | 5 |
| Gelb | 6 |
| Rosa | 7 |
| Türkis | 8 |
| Dunkelrot | 9 |
| Grün | 10 |
| Dunkelblau | 11 |
| Dunkelgelb | 12 |
| Violett | 13 |
| Seegrün | 14 |
| Grau 25% | 15 |
| Grau 50% | 16 |
Sollten diese Farben nicht ausreichen, verwenden Sie statt ColorIndex die Angabe «Color» und übergeben die Farbe als RGB-Wert (mit je einer Zahl für Rot, Grün und Blau):
Case "Rosa"
Target.Interior.Color = RGB(255, 200, 200)
Das fertige Makro könnte etwa so aussehen:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Select Case Target.Value
Case "Ferien"
Target.Interior.ColorIndex = 5
Target.Font.ColorIndex = 2
Case "Büro"
Target.Interior.ColorIndex = 3
Case "Weiterbildung"
Target.Interior.ColorIndex = 6
Case "Administration"
Target.Interior.ColorIndex = 14
End Select
End Sub
Bei sehr vielen Farben könnten Sie die Zellfarbe auch anhand des Wertes errechnen und sich so viele separate «Case»-Blöcke sparen. Eine plumpe Methode für Werte zwischen null und 255 wäre diese hier:
Target.Interior.Color = RGB(Target.Value, Target.Value, Target.Value)
Erstellt: 04.11.2008, 20:17 Uhr
Digital
Live @ Sunset
11. bis 22. Juli - Zürich Dolder u.a. mit B.B. King, Elton John und Alanis Morissette!
Familie, Beruf und Studium
Sonia Uhlmann ist keine typische Studentin. Dank Fernstudium hat sie den Master trotzdem geschafft.





