|
In diesem Beispiel kommt eine VBA Lösung
zum Einsatz. Realisiert wird das durch
eine Select Case Anweisung.
Der Code ist in das
VBA-Projekt der Tabelle
einzufügen, in der er wirken soll.
|
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn mehr als eine Zelle markiert wurde dann Makro beenden
If Target.Cells.Count > 1 Then Exit Sub
Select Case Target
'Wenn der Wert zwischen 1 und 30 dann Schriftfarbe gelb
Case 1 To 30
Cells(Target.Row, Target.Column).Font.ColorIndex = 44
'Wenn der Wert zwischen 50 und 80 dann Schriftfarbe blau
Case 50 To 80
Cells(Target.Row, Target.Column).Font.ColorIndex = 41
'Wenn der Wert zwischen 81 und 1000 dann Schriftfarbe rot
Case 81 To 1000
Cells(Target.Row, Target.Column).Font.ColorIndex = 3
'Wenn der Wert außerhalb der Bedingungen dann keine Schriftfarbe
Case Else
Target.Interior.ColorIndex = 0
End Select
End Sub
|
In einem 2. Beispiel sollte bei
Überschreiten des Wertes in B2 die
Hintergrundfarbe anfangen zu blinken.
Es kommt
ebenfalls eine VBA Lösung
zum Einsatz. Realisiert wird das durch
eine Worksheet_Change Anweisung
|
Private Sub Worksheet_Change(ByVal Target As Range)
'Wenn Wert in Zelle B2 gleich oder größer der zahl 10, dann...
If Range("B2") >= 10 Then
'Variable Zeit leeren und Makro "Erste_Farbe" starten
If Zeit = "" Then Erste_Farbe
'ansonsten
Else
'Anweisung beenden
Ende
'Abfrage Ende
End If
End Sub
|
und
3 Makros.
|
Sub Erste_Farbe()
'Hintergrundfarbe in Zelle B2 in rot ändern
ActiveSheet.Range("B2").Interior.ColorIndex = 3
'Zeittakt 1 sek.
Zeit = Now + TimeValue("00:00:01")
'Wenn die Zeit abgelaufen ist, Makro "Zweite_Farbe" starten
Application.OnTime Zeit, "Zweite_Farbe"
End Sub
Sub Zweite_Farbe()
'Hintergrundfarbe in Zelle B2 in rot ändern
ActiveSheet.Range("B2").Interior.ColorIndex = 0
'Zeittakt 1 sek.
Zeit = Now + TimeValue("00:00:01")
'Wenn die Zeit abgelaufen ist, Makro "Erste_Farbe" starten
Application.OnTime Zeit, "Erste_Farbe"
End Sub
Sub Ende()
'Wenn ein Fehler auftritt, dann mit nächster Anweisung weitermachen
On Error Resume Next
'Makro "Zweite_Farbe" beenden
Application.OnTime EarliestTime:=Zeit, Procedure:="Zweite_Farbe", Schedule:=False
'Makro "Erste_Farbe" beenden
Application.OnTime EarliestTime:=Zeit, Procedure:="Erste_Farbe", Schedule:=False
'Variable Zeit leeren
Zeit = ""
'Hintergrundfarbe der Zelle B2 in weiß ändern
ActiveSheet.Range("B2").Interior.ColorIndex = 0
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 |
|
|
|
|
|
|