|  
                                             
	Hallo Tim, 
	  
	hier die 2. Lösung. 
	Hierbei werden, je nachdem wie lange noch bis zur Alarm-Zeit ist, bis zu 2 Timer gestartet. 
	1. Timer startet (einmal)  z.B. 1 Stunde vorher und veranlasst das einfärben der Zelle in z.B. Gelb 
	2. Timer wird dann (einmal) aufgerufen wenn die Alarm-Zeit erreicht ist. Hier wird dann ein 3. Timer gestartet, der für das Blinken zuständig ist. 
	Das schöne an der Methode ist, es wird, vor der Alarm-Zeit, nicht ständig irgendein Code ausgeführt. 
	  
	Auch hier gelten die Vorraussetzungen wie bei der 1. Methode 
	Es muss eine Checkbox (Name CheckBox1) auf dem 1. Blatt vorhanden sein. 
	Derzeit wird die Zelle B4 abgefragt, kann man aber im "Start" Makro ändern 
	  
	In VBA unter "DieseArbeismappe" folgenden Code einfügen 
Option Explicit
Private Sub Workbook_Open()
If Sheets(1).CheckBox1.Value Then
    Start
    faerben
    TimerSetzen
End If
End Sub
	In das Code-Fenster des 1. Blattes 
Option Explicit
Private Sub CheckBox1_Click()
    Start
    faerben
    TimerSetzen
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Alarm) Is Nothing Then
    Me.CheckBox1.Value = 1
    
End If
End Sub
	Und in ein Modul dann 
Option Explicit
Public WarnFarbe As Long
Public AlarmFarbe As Long
Public WarnZeit As Long ' in Sek
Public Alarm As Range
Public Sub Timer1()
If Sheets(1).CheckBox1.Value Then faerben
End Sub
Public Sub Timer2()
If Sheets(1).CheckBox1.Value Then
    faerben
    Application.OnTime Now + TimeSerial(0, 0, 1), "Timer3"
End If
End Sub
Public Sub Timer3()
If Sheets(1).CheckBox1.Value Then
    faerben
    Application.OnTime Now + TimeSerial(0, 0, 1), "Timer3"
End If
End Sub
Public Sub Start()
WarnFarbe = RGB(256, 256, 0)
AlarmFarbe = RGB(256, 0, 0)
WarnZeit = 10
Set Alarm = Sheets(1).Range("B4")
End Sub
Public Sub faerben()
    If DateDiff("s", Time, Alarm) <= WarnZeit And DateDiff("s", Time, Alarm) > 0 Then
        Alarm.Interior.Color = WarnFarbe
    ElseIf DateDiff("s", Time, Alarm) < 0 Then
        If Alarm.Interior.Color = AlarmFarbe Then
            Alarm.Interior.Pattern = xlNone
        Else
            Alarm.Interior.Color = AlarmFarbe
        End If
    Else
        Alarm.Interior.Pattern = xlNone
    
    End If
End Sub
Public Sub TimerSetzen()
    If DateDiff("s", Time, Alarm) > WarnZeit Then
        Application.OnTime DateAdd("s", -WarnZeit, Alarm), "Timer1"
    End If
    If DateDiff("s", Time, Alarm) > 0 Then
        Application.OnTime Alarm, "Timer2"
    Else
        Application.OnTime Now + TimeSerial(0, 0, 1), "Timer3"
        
    End If
End Sub
	Gruß Markus 
     |