Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Application.ontime stoppen

Forumthread: Application.ontime stoppen

Application.ontime stoppen
Runner2907
hallo forum,
ich starte mit folgendem makro eine echtzeit-ausgabe:
Sub Uhrzeit()
[D21] = Format(Time, "hh:mm:ss")
Application.OnTime Now + TimeValue("00:00:01"), "Uhrzeit"
End Sub
Wie kann ich das wieder ausstellen bzw. anhalten?
Gruß
frank
Anzeige

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Schedule:=False
18.02.2010 14:47:38
Matthias5
Hallo Frank,
stoppen mit:
Application.OnTime Now + TimeValue("00:00:01"), "Uhrzeit", schedule:=False
Gruß,
Matthias
AW: Schedule:=False
18.02.2010 14:56:11
Runner2907
Hallo Matthias,
so hatte ich mir das mit dem stoppen ja auch vorgestellt, ich bekomme aber die Fehlermeldung:
Laufzeitfehler 1004
die Methode 'ontime' für das Objekt'_Application' ist fehlgeschlagen.
Gruß
frank
Anzeige
AW: Schedule:=False
18.02.2010 15:03:41
Matthias5
Hallo Frank,
habe das jetzt ein paar mal probiert. Grundsätzlich funktioniert es, aber ab und zu bekomme ich auch den Fehler.
Weiß da vielleicht jemand anderes, woran das liegt? Vielleicht an einer Überlappung aufgrund der kleinen Frequenz (1 Sekunde)?
Gruß,
Matthias
AW: Schedule:=False
18.02.2010 15:09:48
Runner2907
hallo matthias,
danke...
habe auch mal größeres intervall eingegeben, ich bekomme immer die fehlermeldung...
aber gut zu wissen, dass ich nicht ganz falsch lag....vielleicht weiß ja noch jemand rat...
Gruss frank
Anzeige
AW: Schedule:=False
18.02.2010 15:09:14
Josef
Hallo Frank,

.OnTime hat seine Tücken.
Das macht amn am besten so.

' **********************************************************************
' Modul: Modul5 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Private dblNextTime As Double

Sub start()
  dblNextTime = Now + TimeSerial(0, 0, 1)
  Application.OnTime dblNextTime, "Uhrzeit"
End Sub

Sub stopp()
  Application.OnTime dblNextTime, "Uhrzeit", Schedule:=False
End Sub

Sub Uhrzeit()
  [D21] = Format(Time, "hh:mm:ss")
  start
End Sub

Ausserdem darfst du nicht vergessen, vor dem Schliessen der Datei, "stopp" auszuführen,
sonst gibt's eine Überaschung ;-))
Gruß Sepp

Anzeige
AW: Schedule:=False
19.02.2010 08:28:03
Runner2907
Hallo Sepp,
danke für die Antwort, konnte jetzt erst testen, Uhrzeit startet aber wenn ich sie stoppe bekomme ich den Laufzeitfehler 1004 zurück. Die Methode ontime für das objekt application ist fehlgeschlagen und beim debuggen wird folgendes markiert:
Sub stopp()
Application.OnTime dblNextTime, "XUhrzeit", Schedule:=False
End Sub
Die Uhrzeit wurde angehalten, aber die fehlermeldung nervt...
gruss
frank
Anzeige
AW: Schedule:=False
19.02.2010 09:49:27
Reinhard
Hallo Frank,
was soll das "X" in "XUhrzeit"?
Gruß
Reinhard
AW: Schedule:=False
19.02.2010 09:52:48
Runner2907
hallo reinhard,
ich glaub das hat keine auswirkungen, ohne das x kam die Fehlermeldung Uhrzeit doppelt vorhanden, da dachte ich mir, dass ich einen neuen namen vergebe.
gruß
frank
AW: Schedule:=False
19.02.2010 09:56:10
Runner2907
ohne das X bekomme ich die fehlermeldung: Mehrdeutiger Name: Uhrzeit...
Anzeige
AW: Schedule:=False
19.02.2010 10:46:37
Reinhard
Hallo Frank,
zeige mal allen Code den du hast wo "(X)Uhrzeit" drin vorkommt.
Gruß
Reinhard
AW: Schedule:=False
19.02.2010 10:10:46
Josef
Hallo Frank,

kopiere doch einfach meinen Code und teste ihn.
Was müsst ir immer an Code den man euch Postet herumschrauben, obwohl ihr absolut keine Ahnung habt!

Gruß Sepp

Anzeige
AW: Schedule:=False
19.02.2010 10:19:04
Runner2907
hallo sepp,
hab das ja eins zu eins kopiert und probiert, dabei tauchte ja die fehlermeldung auf...
gruss frank
AW: Schedule:=False
19.02.2010 11:04:41
Runner2907
dem stimme ich zu...aber sobald ich das bei mir einbinde, bekomme ich die fehlermeldung....es ist leider so...aber danke erstmal...ich werd noch bischen probieren...
AW: Schedule:=False
19.02.2010 11:22:12
Josef
Hallo Fra nk,

dann zeig doch mal deinen gesamten Code, oder sollen wir hier den ganzen Tag herumraten?

Gruß Sepp

Anzeige
AW: Schedule:=False
19.02.2010 11:32:37
Runner2907
ich glaub jetzt stoße ich an die grenzen meiner vba kenntnisse, vielleicht hab ich mich auch falsch ausgedrückt...das makro läuft schon eigenständig, ist aber in eine Mappe eingebunden, in der mehrere makros stehen...danke für die hilfe aber ich werd mal selber weiter probieren...
Bitteschön, ich bin draußen o.w.T.
19.02.2010 11:37:04
Reinhard


Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Anwendung von Application.OnTime in Excel VBA stoppen


Schritt-für-Schritt-Anleitung

Um ein Makro in Excel VBA zu stoppen, das mit Application.OnTime erstellt wurde, befolge diese Schritte:

  1. Makro erstellen: Zuerst erstelle ein Makro, das Application.OnTime nutzt, um eine Funktion regelmäßig auszuführen. Beispiel:

    Sub Uhrzeit()
       [D21] = Format(Time, "hh:mm:ss")
       Application.OnTime Now + TimeValue("00:00:01"), "Uhrzeit"
    End Sub
  2. Stopp-Funktion implementieren: Um das Makro zu stoppen, füge eine Stopp-Funktion hinzu. Diese sollte Schedule:=False verwenden, um die geplante Ausführung zu beenden:

    Sub stopp()
       Application.OnTime Now + TimeValue("00:00:01"), "Uhrzeit", Schedule:=False
    End Sub
  3. Aufruf der Stopp-Funktion: Stelle sicher, dass du die Stopp-Funktion aufrufst, bevor du die Excel-Datei schließt, um Laufzeitfehler zu vermeiden.


Häufige Fehler und Lösungen

  • Laufzeitfehler 1004: Dieser Fehler tritt auf, wenn Application.OnTime nicht korrekt ausgeführt werden kann. Überprüfe, ob die Zeit, die du angibst, korrekt ist und ob die Funktion, die du stoppen möchtest, richtig benannt ist.

  • Überlappungen bei kurzer Frequenz: Wenn du Application.OnTime mit einem sehr kurzen Intervall (z.B. 1 Sekunde) verwendest, kann es zu Überlappungen kommen. Verwende längere Intervalle, um Probleme zu vermeiden.

  • Fehler bei der Verwendung von "XUhrzeit": Achte darauf, dass der Name der Funktion, die du stoppst, genau dem Namen entspricht, der bei der Planung verwendet wird. Wenn du den Namen änderst (z.B. "XUhrzeit"), kann dies zu Mehrdeutigkeiten führen.


Alternative Methoden

Falls du eine andere Methode zum Stoppen von Application.OnTime ausprobieren möchtest, könntest du:

  • Eine globale Variable verwenden: Setze eine globale Variable, die angibt, ob das Makro aktiv ist oder nicht. So kannst du das Makro einfach anhalten, indem du die Variable änderst.

    Dim IsRunning As Boolean
    
    Sub Uhrzeit()
       If Not IsRunning Then Exit Sub
       [D21] = Format(Time, "hh:mm:ss")
       Application.OnTime Now + TimeValue("00:00:01"), "Uhrzeit"
    End Sub
    
    Sub Start()
       IsRunning = True
       Uhrzeit
    End Sub
    
    Sub Stopp()
       IsRunning = False
    End Sub

Praktische Beispiele

Hier sind einige Beispiele für die Verwendung von Application.OnTime, um eine wiederkehrende Funktion zu erstellen und zu stoppen:

  1. Echtzeit-Uhrzeit anzeigen:

    Sub Uhrzeit()
       [D21] = Format(Time, "hh:mm:ss")
       Application.OnTime Now + TimeValue("00:00:01"), "Uhrzeit"
    End Sub
  2. Stoppen der Uhrzeit:

    Sub Stopp()
       Application.OnTime Now + TimeValue("00:00:01"), "Uhrzeit", Schedule:=False
    End Sub

Tipps für Profis

  • Fehlerbehandlung: Implementiere eine Fehlerbehandlungsroutine, um mögliche Laufzeitfehler beim Stoppen von Application.OnTime abzufangen.

  • Verwende TimeSerial: Anstelle von TimeValue kannst du TimeSerial verwenden, um Zeitwerte zu erstellen, was oft klarer und weniger fehleranfällig ist.

  • Dokumentiere deinen Code: Füge Kommentare hinzu, um den Zweck jeder Funktion zu erklären. Dies hilft dir und anderen, den Code später leichter zu verstehen.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Makro wirklich stoppt?
Achte darauf, dass du die Stopp-Funktion vor dem Schließen der Excel-Datei aufrufst. Andernfalls könnte es zu unerwarteten Fehlern kommen.

2. Was bedeutet der Fehler "Laufzeitfehler 1004"?
Dieser Fehler weist darauf hin, dass es ein Problem mit dem Application.OnTime Aufruf gibt, häufig verursacht durch falsche Zeitangaben oder einen nicht vorhandenen Funktionsnamen.

3. Kann ich mehrere Application.OnTime Aufrufe gleichzeitig verwenden?
Ja, aber achte darauf, dass sie nicht überlappen. Verwende unterschiedliche Zeitintervalle oder verwalte sie mit einer globalen Variable.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige