Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
476to480
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
476to480
476to480
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Application.OnTime

Application.OnTime
30.08.2004 21:02:07
Franc
Da es hier im Forum nicht nach oben geschoben wird muss ich nochmal einen neuen Beitrag schreiben.
Alter: https://www.herber.de/forum/messages/477590.html
Das Problem ist gefunden ich weiss nur nicht wie ich es beheben soll.
Wenn ich
Application.OnTime Time + TimeSerial(0, 10, 0), "bild",
Schreibe öffnet er bei jedem Start ein neues Timefenster. (deswegen hatte ich dann auch soviel Meldungen)
Wenn ich
erst
Application.OnTime Time + TimeSerial(0, 10, 0), "bild",
und dann
Application.OnTime Time + TimeSerial(0, 10, 0), "bild", False
schreibe dann schließt er das alte und nimmt daher immer nur 1.
Jetzt gibbet es aber ein Problem.
wenn ich jetzt
Application.OnTime Time + TimeSerial(0, 10, 0), "bild", False
starte dann gibts natürlich eine Fehlermeldung. (weil kein Zeitfenster mehr offen ist)
Gibt es eine Option womit ich prüfen kann, ob Application.OnTime bereits gestartet wurde? Oder ich alle offenen Zeitfenster schließen kann?
Ich kann in meiner Tabelle nicht 100%-ig festlegen ob gerade ein Zeitfenster offen ist oder nicht.

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

Betreff
Datum
Anwender
Anzeige
schau nochmal unten nach oT
mealone
AW: Application.OnTime
30.08.2004 22:43:35
Philipp
Hallo Franc
Das Problem liegt an der doppelten Verwendung von Time. Beim Löschen der geplanten Prozedurausführung (d.h. Scheduled-Parameter=False) muss der gleiche Zeitpunkt angegeben werden, der beim Hinzufügen der geplanten Ausführung verwendet wurde. Wenn man das nicht macht und eine Sekunde später (oder mehr) versucht, die geplante Ausführung zu löschen, erscheint der Laufzeitfehler 1004. Der Fehler erscheint jedoch nicht, weil kein Zeitfenster mehr offen ist sondern weil die angegebene Zeit falsch ist. Der ursprünglich verwendete Zeitpunkt muss daher in einer öffentlichen Variable festgehalten werden.
Hier ein Beispiel:
Dim varTime As Variant

Sub SetTimer()
varTime = Time + TimeSerial(0, 10, 0)
Application.OnTime varTime, "DoIt"
End Sub


Sub KillTimer()
Application.OnTime varTime, "DoIt", , False
End Sub


Sub DoIt()
MsgBox "Hallo OnTime!", vbInformation
End Sub

Eine Option zum Prüfen, ob OnTime bereits ausgeführt wurde, gibt es nicht. Wenn man jedoch die Codezeile "Application.OnTime varTime, "DoIt", , False" ausführt und es tritt der Laufzeitfehler 1004 auf, so weiss man, dass diese geplante Prozedurausführung entweder schon gelaufen ist oder bereits gelöscht wurde.
Gruss
Philipp
¦¦¦ xlam - Excel and more!
¦¦¦ http://195.186.84.74/index.htm
Anzeige
AW: Application.OnTime
Franc
thx das funktioniert.
Die Fehlermeldungen umgehe ich mit
On Error GoTo ende

54 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige