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 |
|
|
|
|
|
|