Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1076to1080
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

Probleme mit Ontime Befehl

Probleme mit Ontime Befehl
19.05.2009 08:47:02
Marco
Hallo zusammen,
in einer Anwendung verwende ich den Befehl Ontime um eine Aktualisierung einer Liste vorzunehmen. Jetzt aber folgendes Problem. Schließt man das Arbeitsbuch und Excel ist nicht komplett geschlossen (Bspw. eine ander Exceldatei ist noch offen), dann öffnet sich zur earliesttime die Anwendung wieder und Excel macht gar nichts mehr. Kein Darstellen, kein speichern nichts mehr.
Und meine Stopprozedur kann dies nicht verhindern. WARUM!?!
Start Prozedur:

Sub StartCounter(refresh_function)
Dim iIntervall As Integer
'  Start der nächsten Ausführung in 5 Minuten
iIntervall = 30
gdnexttime = now + TimeSerial(0, 0, iIntervall)
Application.OnTime earliesttime:=gdnexttime, procedure:=refresh_function, schedule:=True
End Sub


Stop Prozedur:


Sub StopCounter(refresh_function)
On Error Resume Next
Application.OnTime earliesttime:=gdnexttime, procedure:=refresh_function, schedule:=False
End Sub


6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Probleme mit Ontime Befehl
19.05.2009 08:51:02
Hajo_Zi
Hallo Marco,
in Private Sub Workbook_BeforeClose(Cancel As Boolean)
mußt Du das Makro anhalten.

AW: Probleme mit Ontime Befehl
19.05.2009 08:59:17
Tino
Hallo,
versuche es mal so und Deklariere gdnexttime als Public in einem Modul.
Beim beenden der Datei führst Du StopCounter aus.
Beispiel ungetestet.
kommt als Code in DieseArbeitsmappe
Option Explicit 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
 Call StopCounter("MeinMakro") 
End Sub 
 
 

Modul Modul1

Option Explicit 
Public gdnexttime As Date 
 
Sub StartCounter(refresh_function As String) 
Dim iIntervall As Integer 
'  Start der nächsten Ausführung in 5 Minuten 
iIntervall = 30 
gdnexttime = Now + TimeSerial(0, 0, iIntervall) 
Application.OnTime earliesttime:=gdnexttime, procedure:=refresh_function, schedule:=True 
End Sub 
 
Sub StopCounter(refresh_function As String) 
On Error Resume Next 
Application.OnTime earliesttime:=gdnexttime, procedure:=refresh_function, schedule:=False 
End Sub 


Gruß Tino

Anzeige
AW: Probleme mit Ontime Befehl
19.05.2009 09:17:21
Marco
Ärgerlicherweise hab ich auch das schon getan. Hier der Code vom ganzen Modul:
Option Explicit
Public gdnexttime As Double

Sub StartCounter(refresh_function)
Dim iIntervall As Integer
'  Start der nächsten Ausführung in 5 Minuten
iIntervall = 30
gdnexttime = now + TimeSerial(0, 0, iIntervall)
Application.OnTime earliesttime:=gdnexttime, procedure:=refresh_function, schedule:=True
End Sub



Sub StopCounter(refresh_function)
On Error Resume Next
Application.OnTime earliesttime:=gdnexttime, procedure:=refresh_function, schedule:=False
End Sub


Und ich führe definitiv nach Startcounter Stopcounter durch.
Hatte folgendes schonmal probiert.
Startcounter aktiviert 15 Sekunden gewartet, dann Stopcounter ausgeführt. Programm geschlossen und nach weiteren 15 Sekunden kommt die Datei wieder hoch und alles ist abgestürzt! D.h. er stürzt 30 Sekunden nach dem Startcounter ab. Stopcounter ist also nicht schuld am Absturz, stoppt aber leider auch nicht den Startcounter.
Warum nicht, funktioniert das bei Dir?
Hinweis: die Prozedur die Aufgefrufen wird interagiert mit einer Userform, die dann nicht mehr vorhanden ist. Deshalb wahrscheinlich der Absturz, aber warum stoppt Stopcounter nicht die Aktualisierungsfunktion?

Anzeige
AW: Probleme mit Ontime Befehl
19.05.2009 09:22:57
Marco
Hallo zusammen,
ich Idiot! Ich hab den Fehler. Ein Schreibfehler bei der Übergabe der Funktion. Hab beim Stopcounter die Variable refresh_function mit einer Funktion mit Schreibfehler übergeben. So konnte er natürlich nicht die aktuelle Funktion stoppen.
Entschuldigt, dass ich eure Zeit wegen solch eines Fehlers in Anspruch genommen habe.
Gruß
Marco
AW: Probleme mit Ontime Befehl
19.05.2009 09:34:03
Tino
Hallo,
erstens würde ich gdnexttime als Date Deklarieren.
Zweitens mach mal bei StopCounter einen Stoppmarkierung und schaue mal nach ob gdnexttime die richtige Zeit hat die noch aktiv sein müsste und ob auch in refresh_function die richtige Prozedur steht.
Ich vermute, dass gdnexttime nicht mehr die Uhrzeit des noch aktiven Timers hat.
Gruß Tino
Anzeige
AW: Probleme mit Ontime Befehl
19.05.2009 10:27:24
Marco
Hi Tino,
danke nochmal, der Fehler ist gefunden. Ich hatte es schon vor Deinem Statement geschrieben gehabt.
Schönen Tag noch...
Gruß Marco

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige