Option Explicit ' Variablendefinition erforderlich
Option Private Module ' Makro nicht unter Extra, Makro sichtbar
'* H. Ziplies *
'* 28.12.07 *
'* erstellt von Hajo.Ziplies@web.de *
'* http://Hajo-Excel.de/
' das Schreiben der Startzeit auf eine Variable hat den Vorteil das die Prozedur leichter _
angehalten werden kann
Public DaEt As Date ' nächste Startzeit
Public InFarbe As Integer ' Farbe der Zelle bei Beginn Blinken
Public BoZustand As Boolean ' Zustand blinken, False =Ein
Public Const InFarbe1 As Integer = 3 ' erste Farbe
Public Const InFarbe2 As Integer = 33 ' zweite Farbe
Public Const DaZeit As Date = "00:00:01" ' Zeitabstand Blinken
Sub Farbe()
ActiveSheet.Unprotect
With ThisWorkbook.Worksheets("basisdaten")
If .Range("N13") = 1 And BoZustand = False Then
If .Range("B13").Font.ColorIndex InFarbe1 And _
.Range("B13").Font.ColorIndex InFarbe2 Then
InFarbe = .Range("B13").Font.ColorIndex ' Füllfarbe vor Farbwechsel
End If
If .Range("B13").Font.ColorIndex = InFarbe2 Then
.Range("B13").Font.ColorIndex = InFarbe1
Else
.Range("B13").Font.ColorIndex = InFarbe2
End If
.Protect
DaEt = Now + DaZeit ' neue Startzeit setzen
Application.OnTime DaEt, "Farbe" ' Prozedur zur Startzeit starten
End If
End With
ActiveSheet.Protect
End Sub
Sub Ende()
On Error Resume Next ' Fehlerroutine von Excel ausschalten
Application.OnTime EarliestTime:=DaEt, Procedure:="Farbe", Schedule:=False
On Error GoTo 0 ' Fehlerroutine von Excel einschalten
With ThisWorkbook.Worksheets("basisdaten").Range("B13")
If .Font.ColorIndex = InFarbe1 Or .Font.ColorIndex = InFarbe2 Then
.Font.ColorIndex = InFarbe ' Füllfarbe auf Zustand vor Farbwechsel _
zurücksetzen
End If
End With
End Sub
An was kann das liegen? In einer neuen Mappe gehts ohne Probleme!