Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
840to844
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
840to844
840to844
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Application.OnTime -> Makro läuft mehrmals

Application.OnTime -> Makro läuft mehrmals
30.01.2007 17:42:24
SH
Hallo,
ich hab fuer "ThisWorkbook" eine Application.OnTime-Procedure definiert - ein Makro soll täglich um Punkt 23 Uhr laufen.
Das klappt eigentlich gut, nur manchmal wird das Makro aus irgendwelchen Gründen mehrmals hintereinander gestartet. Läuft dann zweimal, dreimal oder so durch. Wie gesagt, ich weiß wirklich nicht woran das liegt. Nervt ziemlich, da das Makro einen "PrintOut"-Befehl beinhaltet und die Mappe so mehrmals ausgedruckt wird...
Hat jmd eventuell Tipps? Vielen Dank!
Susanne

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 18:03:38
Jochen
Hi,
kann es sein, dass in deineme Code ein Fehler ist?
mfg Jochen
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 18:08:41
SH
welcher Fehler sollte das sein? Ist ein ganz simples Makro. Wie gesagt, meistens läufts auch ganz normal, einmal und gut.
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 18:12:55
Hubert
Hi,
ist dein Code geheim oder warum postest du ihn nicht?
mfg Hubert
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 18:29:43
SH
nein, nicht geheim, aber er tut nichts zur Sache.
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 21:26:58
Hubert
Hi,
wie du meinst.
mfg Hubert
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 21:32:07
SH
da es meistens ganz normal läuft, kann es nicht am Code liegen. So what, warum beleidigt?
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 18:12:16
fcs
Hallo Susanne,
wahrscheinlich wird in der Arbeitsmappe das Ereignis mehrmals am Tag ausgelöst, dass die Prozedur mit der OnTime-Anweisung enthält.
Die Datei wird z.B mehrmals am Tag geöffnet und geschlossen. Wenn die OnTime-Anweisung in der Workbook_Open Prozedur steht dann wird auch mehrmals der Timer gesetzt und später mehrmals ausgeführt.
Mit folgendem Konstrukt wird die OnTime-Prozedur nur einmal ausgeführt. Dabei wird das OnTime Ereignis ggf. immer zuerst gelöscht und dann neu gesetzt.
Gruss
Franz

Private Sub Workbook_Open()
On Error Resume Next
Application.OnTime Earliesttime:="23:00:00", Procedure:="DerTimeruft", Schedule:=False
Application.OnTime Earliesttime:="23:00:00", Procedure:="DerTimeruft"
End Sub

Anzeige
AW: Application.OnTime -> Makro läuft mehrmals
30.01.2007 18:29:05
SH
Servus fcs,
kann dir leider nicht ganz folgen. "ThisWorkbook" sieht so aus:

Private Sub Workbook_Open()
Application.OnTime #11:00:00 PM#, "Makro1"
End Sub

Meistens läuft um 23 Uhr Makro1. Einmal und gut. Manchmal läuft es allerdings um Punkt 23 Uhr dreimal oder so hintereinander.
Du meinst wenn man die Mappe tagsüber öfter öffnet & schließt, ohne gleichzeitig auch Excel komplett zu schließen, wird das OnTime-Ereignis auch mehrmals sozusagen auf Vorrat gespeichert?
AW: Application.OnTime -> Makro läuft mehrmals
31.01.2007 01:05:42
fcs
Hallo Susanne,

Du meinst wenn man die Mappe tagsüber öfter öffnet & schließt, ohne gleichzeitig auch Excel komplett zu schließen, wird das OnTime-Ereignis auch mehrmals sozusagen auf Vorrat gespeichert?

Ja, genau das macht Excel.
Das kannst du ja ganz einfach mit einer Datei probieren.
Lasse in nachfolgendem Beispiel zunächst die ersten beiden Zeilen weg und stelle die Zeit auf ein paar Minuten in die Zukunft. Dann öffnest und schließt du Datei ein paar mal und wartest dann bei geöffneter Datei.
Danach fügst du die beiden Zeilen ein, änderst die Aufruftzeit und wiederholst das Spielchen.
Gruss
Franz

Private Sub Workbook_Open()
On Error Resume Next
Application.OnTime Earliesttime:="09:07:00", Procedure:="OnTimeruft", Schedule:=False
Application.OnTime Earliesttime:="09:07:00", Procedure:="OnTimeruft"
End Sub
in ein Modul
Sub OnTimeruft()
MsgBox "09:07:00 OnTime meldet sich"
End Sub

Anzeige
AW: Application.OnTime -> Makro läuft mehrmals
31.01.2007 13:01:05
SH
hm, ich schaffs irgendwie nicht... - wie muss ich meinen "ThisWorkbook" Code anpassen, damit das Ding garantiert nur einmal läuft? Ist das nicht eher ein Excel-Bug, wenn es tatsächlich mit Mappe öffnen/schließen zusammenhängt? Kann mir keine nützliche Anwendung für dieses vorratspeicherung vorstellen...
AW: Application.OnTime -> Makro läuft mehrmals
31.01.2007 17:33:14
fcs
Hallo Susanne,
finde dich einfach damit ab, dass Excel jeden OnTime-Aufruf als separate Aktion speichert, auch dann wenn Zeit und Prozedur des Aufrufs identisch sind. Ich sehe es eher als lästiges Übel, wenn man das will was du vorhast.
Folgende Anpassung sollte dafür sorgen, dass die Ausführung zukünftig nur noch einmal pro Tag erfolgt.

Private Sub Workbook_Open()
On Error Resume Next
Application.OnTime Earliesttime:=#11:00:00 PM#, Procedure:="Makro1", Schedule:=False
Application.OnTime Earliesttime:=#11:00:00 PM#, Procedure:="Makro1"
End Sub
Mit folgendem Makro kannst du evtl. schon gespeicherte OnTime-Aktionen löschen
Sub OnTimebereinigen()
On Error GoTo Fehler
Do
Application.OnTime Earliesttime:=#11:00:00 PM#, Procedure:="Makro1", Schedule:=False
Loop
Fehler:
MsgBox "Alle gespeicherten OnTime Earliesttime:=#11:00:00 PM#, Procedure:=""Makro1"" sind gelöscht"
End Sub

Diese Makro ausführen und anschließend schließt du deine Datei und öffnest sie wieder, damit um 11:00:00 PM das Makro1 ausgeführt wird.
Gruß
Franz
Anzeige

54 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige