Zelle - Blinken - Font- - Hintergrundfarbe!

Auch immer wieder ein Thema in den Excelforen - blinkende Zellen. Je nach Wert soll eine Zelle blinken. Entweder der Hintergrund, oder die Schrift. Auch ein Kriterium: Die Änderung kann entweder über Eingabe in diese Zelle erfolgen oder über eine Formel. Man sieht in dem Beispiel auch, wie das "Worksheet_Change-Ereignis" über das "Worksheet_Calculate-Ereignis" aufgerufen wird.

Zelle - Blinken - Font- - Hintergrundfarbe...[ZIP, 80 KB]

Folgender Code gehört in "DieseArbeitsmappe":

Option Explicit
Private Sub Workbook_Deactivate()
On Error Resume Next
Call Ende
Call Ende_1
Call Ende_2
Call Ende_3
End Sub


Folgender Code gehört in ein Modul mit Namen "Blinken_2":

Option Explicit
Public varZeit2 As Variant
Public Sub Farbe_Eins_2()
ThisWorkbook.Worksheets("Beispiel_3") _
.Range("A1").Font.ColorIndex = 3
varZeit2 = Now + TimeValue("00:00:01")
Application.OnTime varZeit2, "Farbe_Zwei_2"
End Sub
Public Sub Farbe_Zwei_2()
ThisWorkbook.Worksheets("Beispiel_3") _
.Range("A1").Font.ColorIndex = 5
varZeit2 = Now + TimeValue("00:00:01")
Application.OnTime varZeit2, "Farbe_Eins_2"
End Sub
Public Sub Ende_2()
On Error Resume Next
Application.OnTime EarliestTime:=varZeit2, _
Procedure:="Farbe_Eins_2", Schedule:=False
Application.OnTime EarliestTime:=varZeit2, _
Procedure:="Farbe_Zwei_2", Schedule:=False
varZeit2 = ""
ThisWorkbook.Worksheets("Beispiel_3") _
.Range("A1").Font.ColorIndex = xlAutomatic
End Sub


Folgender Code gehört in ein Modul mit Namen "Blinken":

Option Explicit
Public varZeit As Variant
Public Sub Farbe_Eins()
ThisWorkbook.Worksheets("Beispiel_1") _
.Range("A1").Interior.ColorIndex = 19
varZeit = Now + TimeValue("00:00:01")
Application.OnTime varZeit, "Farbe_Zwei"
End Sub
Public Sub Farbe_Zwei()
ThisWorkbook.Worksheets("Beispiel_1") _
.Range("A1").Interior.ColorIndex = 42
varZeit = Now + TimeValue("00:00:01")
Application.OnTime varZeit, "Farbe_Eins"
End Sub
Public Sub Ende()
On Error Resume Next
Application.OnTime EarliestTime:=varZeit, _
Procedure:="Farbe_Eins", Schedule:=False
Application.OnTime EarliestTime:=varZeit, _
Procedure:="Farbe_Zwei", Schedule:=False
varZeit = ""
ThisWorkbook.Worksheets("Beispiel_1") _
.Range("A1").Interior.ColorIndex = xlNone
End Sub


Folgender Code gehört in ein Modul mit Namen "Blinken_1":

Option Explicit
Public varZeit1 As Variant
Public Sub Farbe_Eins_1()
ThisWorkbook.Worksheets("Beispiel_2") _
.Range("A1").Interior.ColorIndex = 19
varZeit1 = Now + TimeValue("00:00:01")
Application.OnTime varZeit1, "Farbe_Zwei_1"
End Sub
Public Sub Farbe_Zwei_1()
ThisWorkbook.Worksheets("Beispiel_2") _
.Range("A1").Interior.ColorIndex = 42
varZeit1 = Now + TimeValue("00:00:01")
Application.OnTime varZeit1, "Farbe_Eins_1"
End Sub
Public Sub Ende_1()
On Error Resume Next
Application.OnTime EarliestTime:=varZeit1, _
Procedure:="Farbe_Eins_1", Schedule:=False
Application.OnTime EarliestTime:=varZeit1, _
Procedure:="Farbe_Zwei_1", Schedule:=False
varZeit1 = ""
ThisWorkbook.Worksheets("Beispiel_2") _
.Range("A1").Interior.ColorIndex = xlNone
End Sub


Folgender Code gehört in ein Modul mit Namen "Blinken_3":

Option Explicit
Public varZeit3 As Variant
Public Sub Farbe_Eins_3()
ThisWorkbook.Worksheets("Beispiel_4") _
.Range("A1").Font.ColorIndex = 3
varZeit3 = Now + TimeValue("00:00:01")
Application.OnTime varZeit3, "Farbe_Zwei_3"
End Sub
Public Sub Farbe_Zwei_3()
ThisWorkbook.Worksheets("Beispiel_4") _
.Range("A1").Font.ColorIndex = 5
varZeit3 = Now + TimeValue("00:00:01")
Application.OnTime varZeit3, "Farbe_Eins_3"
End Sub
Public Sub Ende_3()
On Error Resume Next
Application.OnTime EarliestTime:=varZeit3, _
Procedure:="Farbe_Eins_3", Schedule:=False
Application.OnTime EarliestTime:=varZeit3, _
Procedure:="Farbe_Zwei_3", Schedule:=False
varZeit3 = ""
ThisWorkbook.Worksheets("Beispiel_4").Range("A1") _
.Font.ColorIndex = xlAutomatic
End Sub


Folgender Code gehört in ein Modul mit Namen "Farben":

Option Explicit
Sub Farben_Nummern()
Dim intZahl As Integer
For intZahl = 1 To 56
With Tabelle6
.Cells(intZahl, 1) = intZahl
.Cells(intZahl, 2).Interior.ColorIndex = intZahl
End With
Next
End Sub


Folgender Code gehört in das Klassenmodul der Tabelle2:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Range("A1").Value >= 22 Then
Call Farbe_Eins
Else
Call Ende
End If
End Sub


Folgender Code gehört in das Klassenmodul der Tabelle3:

Option Explicit
Private Sub Worksheet_Calculate()
Call Worksheet_Change(ActiveCell)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value >= 22 Then
Call Farbe_Eins_1
Else
Call Ende_1
End If
End Sub


Folgender Code gehört in das Klassenmodul der Tabelle4:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
If Range("A1").Value >= 22 Then
Call Farbe_Eins_2
Else
Call Ende_2
End If
End Sub


Folgender Code gehört in das Klassenmodul der Tabelle2:

Option Explicit
Private Sub Worksheet_Calculate()
Call Worksheet_Change(ActiveCell)
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("A1").Value >= 22 Then
Call Farbe_Eins_3
Else
Call Ende_3
End If
End Sub

Kommentare

Beliebte Posts aus diesem Blog

Formeln - auch Array - per VBA eintragen...

Alle Dateien eines Ordners - Optional mit Unterordner

Excel -> Word in Textmarken (Bookmarks)...