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 ]

Vorheriger Tipp Zum Seitenanfang Nächster Tipp

Startseite | Projekte | Tutorials | API-Referenz | VB-/VBA-Tipps | Komponenten | Bücherecke | VB/VBA-Forum | VB.Net-Forum | DirectX-Forum | Foren-Archiv | DirectX | VB.Net-Tipps | Chat | Spielplatz | Links | Suchen | Stichwortverzeichnis | Feedback | Impressum

Seite empfehlen Bug-Report
Letzte Aktualisierung: Samstag, 6. August 2011