Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1124to1128
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Ereignis in Intervallen

Ereignis in Intervallen
Universal
Moin zusammen,
gern würde ich verstehen, wie der "Application.OnTime"-Befehl funktioniert. Zum Test würde ich gern, das alle 10 Sekunden eine MsgBox mit der aktuellen Zeit angezeigt wird. Dafür habe ich folgenden Code geschrieben
Sub Zeitgeber()
Dim TimeStart As Double
Dim TimeEnd As Double
TimeStart = TimeSerial(Hour(Now), Minute(Now) + 1, 0)
TimeEnd = TimeStart + TimeSerial(0, 0, 10)
Application.OnTime earliesttime:=TimeStart, procedure:="Rede", _
LatestTime:=TimeEnd, schedule:=True
End Sub

Sub Rede()
MsgBox Time
End Sub

Nun wird leider nur einmal zur nächsten vollen Minute die MsgBox erzeugt. Ich würde sie anschließend aber gern alle 10 Sekunden erscheinen lassen ... Wie müsste der Code dann aussehen?
Vielen Dank für eure Hilfe!
viele Grüße
Uni

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Ereignis in Intervallen
07.01.2010 00:52:47
Josef
Hi Uni,
das geht so.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private Const clngInterval As Long = 10 'Intervall in Sekunden
Private Const cstrProc As String = "rede" 'Prozedurname
Private dblNextTime As Double


Sub Zeitgeber()
  
  dblNextTime = Now + TimeSerial(0, 0, clngInterval)
  
  Application.OnTime earliesttime:=dblNextTime, _
    procedure:=cstrProc, _
    schedule:=True
  
End Sub

Sub StopTimer()
  Application.OnTime earliesttime:=dblNextTime, _
    procedure:=cstrProc, _
    schedule:=False
End Sub
Sub Rede()
  
  MsgBox Time
  
  Zeitgeber
  
End Sub

Gruß Sepp
PS: Bei OnTime niemals das Stoppen vergessen, sonst ruft sich die Datei von selber auf!
Anzeige
AW: Ereignis in Intervallen
07.01.2010 01:19:39
Universal
Hi Sepp,
ahh, cool. :-) Okay, wie ich sehe, habe ich "nur" den Aufruf des Zeitgebers am Ende der "Rede"-Prozedur vergessen ... und natürlich den StopTimer. Den Rest würde ich als "Desing-Änderung" werten, oder? :-))
Vielen Dank!!!
Gute Nacht
Uni
AW: Ereignis in Intervallen
07.01.2010 07:19:15
Josef
Hi Uni,
zum Teil. Die Variable dblNextTime" muss auf Modulebene deklariert sein, um sie
auch beim Stoppen verwenden zu können. Den Intervall und Prozedurnamen als Konstante
auf Modulebene zu deklarieren erleichtert die Anpassung des Codes.
Gruß Sepp

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige