Manchmal benötigt man in der Programmierung in Excel einen Zeitgeber, der in einem bestimmten Intervall ein Makro aufruft. Dieser Zeitgeber ist ganz einfach realisierbar:
Das Application – Objekt von Excel bietet die Methode “OnTime”. Dieser Methode reichen schon zwei Parameter, einmal der Zeitpunkt “EarliestTime” an dem das Makro “Procedure” gestartet werden soll. Das kann dann ungefähr so aussehen, wenn das Makro “DatenAktualisieren” nach 5 Minuten aufgerufen werden soll:
Application.OnTime DateAdd("n", 5, Now), "DatenAktualisieren"
Die Methode muss man dann immer nach dem ausführen des Makros aufrufen, damit Excel sich wiederrum auf dem Aufruf des Makros nach der definierten Zeit kümmert. Wie man das genau macht, kann man am besten dem kompletten Beispiel entnehmen.
Download einer Beispiel – Exceldatei. (Achtung, mit Autostartmakro): Download
Hier der Code, welcher ein ein Modul kopiert werden muss:
Private Const iMinute As Integer = 5 ‘ Timeraufruf alle 5 Minuten
Sub Auto_Open()
‘ Frage beim automatischen Start
If MsgBox("Wollen Sie den automatischen Timer starten?", vbYesNo) = vbYes Then
Call DatenAktualisieren ‘ Makro erstes mal beim Start aufrufen.
End If
End Sub
Function TimerEinstellen()
Application.OnTime DateAdd("n", iMinute, Now), "DatenAktualisieren"
End Function
Sub DatenAktualisieren()
‘ Hier könnte man so allerlei Zeugs erledigen…
Call TimerEinstellen
Range("A1") = "Daten zuletzt am " & Date & " um " & Format(Now, "hh:nn") & " aktualisiert. Nächste Aktualisierung in " & iMinute & " Minute(n)!"
Beep
End Sub

![MichasBlog posted a photo:[cid:3348952963_5990009] MichasBlog posted a photo:[cid:3348952963_5990009]](http://farm5.static.flickr.com/4059/4354233863_f3c5e6c9e9_s.jpg)