|
Tipp 0087
|
Makro in Zeitintervallen ausführen
|
|
|
Autor/Einsender: Datum: |
|
Angie 18.03.2004 |
|
Entwicklungsumgebung: |
|
Excel 2000 |
|
|
Mit der OnTime-Methode kann man bewirken, dass eine Prozedur zu einem bestimmten Zeitpunkt, entweder zu einer
bestimmten Zeit oder nachdem eine bestimmte Zeitspanne vergangen ist, gestartet wird. Es besteht auch die Möglichkeit, Makros
in bestimmten Zeitintervallen wiederholt auszuführen.
|
Ein praxisnaher Einsatz für eine solche Prozedur wäre z. B. die Aktualisierung einer Abfragetabelle oder wie in diesem Beispiel,
alle 10 Minuten eine 'Erinnerungsmeldung' zum Speichern der aktiven Arbeitsmappe anzuzeigen. Hier wird die Meldung nur dann angezeigt,
wenn innerhalb des angegebenen Zeitintervalls evtl. gemachte Änderungen in der aktiven Arbeitsmappe noch nicht gespeichert wurden.
|
|
|
Option Explicit
Private m_RunProcTime As Date
Private Const mc_RunProcName = "SaveFileOnTime"
Private Const mc_RunInterval = 10
Sub StartReminder()
m_RunProcTime = _
Format(Now + TimeSerial(0, mc_RunInterval, 0), "hh:mm:ss")
Application.OnTime EarliestTime:=m_RunProcTime, _
Procedure:=mc_RunProcName
End Sub
Sub SaveFileOnTime()
Dim nRetVal As Long
If ThisWorkbook.Saved = False Then
nRetVal = MsgBox("Erinnerung zum Speichern der aktiven " & _
"Arbeitsmappe !" & vbCrLf & vbCrLf & _
"Soll die 'Erinnerungsmeldung' in 10 Minuten wieder " & _
vbCrLf & "angezeigt werden ?", _
vbYesNo + vbQuestion + vbDefaultButton1, "Erinnerung...")
If nRetVal = vbYes Then
StartReminder
End If
Else
StartReminder
End If
End Sub
Sub StopReminder()
On Error Resume Next
Application.OnTime EarliestTime:=m_RunProcTime, _
Procedure:=mc_RunProcName, Schedule:=False
End Sub
|
|
|
Windows-Version |
95 |
|
|
98/SE |
|
|
ME |
|
|
NT |
|
|
2000 |
|
|
XP |
|
|
Vista |
|
|
Win
7 |
|
|
|
Excel-Version |
95 |
|
|
97 |
|
|
2000 |
|
|
2002
(XP) |
|
|
2003 |
|
|
2007 |
|
|
2010 |
|
|
|
|
Download (13,5 kB)
|
Downloads bisher: [ 1790 ]
|
|
|