2. Mehr als drei bedingte Formatierungen

Aufgabenstellung:

Die normale bedingte Formatierung ist auf drei Bedingungen begrenzt. Es sollten aber trotzdem mehr als 3 Bedingungen realisiert werden.

Dieses Beispiel steht auch als Beispieldatei mit verschiedenen Varianten der bedingten VBA-Formatierung zum Download zur Verfügung.


In diesem Beispiel kommt eine VBA Lösung zum Einsatz. Realisiert wird das durch eine Select Case Anweisung.

Als grobe Übersicht sollen die beiden nachfolgend aufgeführten Makros dienen, die einmal die Zell- und zum Anderen die Schriftfarbe ändern. Weitere Beispiele finden Sie in der Beispieldatei .

Der Code ist in das VBA-Projekt der Tabelle einzufügen, in der er wirken soll.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub

Select Case Target.Value
'bei Buchstabe "k" Schriftfarbe rot
Case "k"
Target.Font.ColorIndex = 3

'bei Buchstabe "u" Schriftfarbe grün
Case "u"
Target.Font.ColorIndex = 4

'bei Buchstabe "s" Schriftfarbe blau
Case "s"
Target.Font.ColorIndex = 5

'bei Buchstabe "t" Schriftfarbe lila
Case "t"
Target.Font.ColorIndex = 7

'kein Buchstabe, keine Schriftfarbe
Case Else
Target.Font.ColorIndex = 0
End Select
End Sub

Der nächster Code ändert bei Übereinstimmung die Hintergrundfarbe. Dieser Code sollte ebenfalls in das VBA Projekt der Tabelle kopiert werden, in der er wirken soll.
 


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub

Select Case Target.Value
'bei Buchstabe "k" Hintergrundfarbe rot
Case "k"
Target.Interior.ColorIndex = 3

'bei Buchstabe "k" Hintergrundfarbe grün
Case "u"
Target.Interior.ColorIndex = 4

'bei Buchstabe "k" Hintergrundfarbe blau
Case "s"
Target.Interior.ColorIndex = 5

'bei Buchstabe "k" Hintergrundfarbe lila
Case "t"
Target.Interior.ColorIndex = 7

'kein Buchstabe, keine Hintergrundfarbe
Case Else
Target.Interior.ColorIndex = xlNone
End Select
End Sub

 


In diesem Beispiel geht es darum, dass Zellen, die Formeln enthalten, bei Eintreten einer Bedingung die Hintergrundfarbe ändern. Realisiert wurde dieses Beispiel mit einer VBA Lösung.

Der Code ist in das VBA-Projekt der Tabelle einzufügen, in der er wirken soll.


Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim rngBereich  As Range
Dim rngZelle    As Range

'Wenn mehr als eine Zelle markiert wurde dann Makro beenden

If Target.Cells.Count > 1 Then Exit Sub 

'Hier wird der Bereich, in dem der Code seine Wirkung hat, eingestellt

Set rngBereich = Range("D3:D9,E3:E9,G3:G9") 

For Each rngZelle In rngBereich

    If Not Intersect(rngZelle, rngBereich) Is Nothing Then
          
          Select Case Application.WorksheetFunction.Weekday(rngZelle.Value)
            Case 1
              rngZelle.Interior.ColorIndex = 3 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 2     'Schriftfarbe
            Case 2
              rngZelle.Interior.ColorIndex = 4 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 2     'Schriftfarbe
            Case 3
              rngZelle.Interior.ColorIndex = 5 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 2     'Schriftfarbe
            Case 4
              rngZelle.Interior.ColorIndex = 6 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 2     'Schriftfarbe
            Case 5
              rngZelle.Interior.ColorIndex = 7 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 2     'Schriftfarbe
            Case 6
              rngZelle.Interior.ColorIndex = 8 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 2     'Schriftfarbe
            Case 7
              rngZelle.Interior.ColorIndex = 9 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 2     'Schriftfarbe
            Case Else
              rngZelle.Interior.ColorIndex = 2 'Hintergrundfarbe
              rngZelle.Font.ColorIndex = 0     'Schriftfarbe
        End Select
    End If
Next
Set rngBereich = Nothing
End Sub

 

 


Dieses Beispiel wurde unter den in der Tabelle aufgeführten Versionen getestet.

  A B C D E
1        

2

 

Excel - Version

Getestet

 
3      
4   Excel 2007 12.0 a  
5   Excel 2003 11.0 a  
6   Excel 2002 10.0 a  
7   Excel 2000 9.0 a  
8   Excel 97 8.0    
9          
10   Anzahl der Downloads:

 
11          
12   Dieses Beispiel wurde bereits  x aufgerufen.  
13    
14          

 


> Beispieldatei herunterladen <

  Sollten beim Ausführen der Beispieldatei Fehler auftreten, bitte ich darum, mir eine Mail mit der Fehlerbeschreibung an fehler@excelbeispiele.de zu schicken.
Danke!

 Möchten Sie www.excelbeispiele.de in Ihre Favoriten aufnehmen? Dann Klicken Sie hier.
 

Kontakt:

letzte Aktualisierung am 28.07.2009

© 2004 - Copyright Oliver Scheckelhoff,
All Rights Reserved