Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1572to1576
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

Zeitgesteuertes Macro mit Fehler

Zeitgesteuertes Macro mit Fehler
18.08.2017 00:10:55
stef26
Hallo zur später Stunde,
ich versuche gerade verzweifelt ein Zeitgesteuertes Makro aufzubauen.
Ein Makro soll in kurzen abständen ausgeführt werden.
Ein weiteres Makro einmal pro Tag.
So weit so gut.
Leider macht das Makro, welches nur einmal pro Tag ausgeführt werden soll komische Sachen. Ich lasse zum Test bevor ich in das Original einbaue erst einmal einfach den Zeitpunkt in eine weitere Tabelle schreiben.
Hier musste ich aber feststellen, dass das einmalige Makro viele Werte in die Tabelle
einträgt. Hier habe ich nur einen Wert erwartet.
Kann mir jemand sagen, was ich fasch gemacht habe?
hier das kleine Testtool:
https://www.herber.de/bbs/user/115544.xlsm
Gruß
Stefan

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

Betreff
Datum
Anwender
Anzeige
erledigt
18.08.2017 05:38:46
Hajo_Zi
https://www.herber.de/forum/messages/1575026.html

Ich gebe keinen Dank für eine Rückmeldung, da ich durch solche Beiträge nicht meine Beitragszahl erhöhen muss.
Rückmeldung ist ja in der Heutigen Zeit nicht üblich und die wenigen die eine Rückmeldung geben, mögen mir das verzeihen, das kein Danke für eine Rückmeldung kommt.
AW: noch fehlerhaft
18.08.2017 06:53:13
stef26
Hallo Hajo,
ich dachte ich habs selber hin bekommen, deshalb hab ich den Post selbst geschlossen.
Leider musste ich feststellen, das der zyklische Abruf der Makros super funktioniert, jedoch beim einmaligen Abruf schreibt er in die zweite Spalte sehr oft das Datum rein.
Und da bräuchte ich doch nochmal kurze Hilfe.
hier das kleine Testtool: (ist auch das Macro anders als beim ersten Post)
https://www.herber.de/bbs/user/115544.xlsm
Liebe Gruesse
Stefan
Anzeige
AW: noch fehlerhaft
18.08.2017 13:27:26
Matthias
Moin! Also das Problem ist, dass du mit jedem Aufruf der SUB AutoMakroSt auch eine spätere Instanz von einmalig aufrufst. Die läuft ja im Hintergrund. Wenn dann die Zeit ist, werden die einzelen Instanzen von einmalig abgerufen und tagen sich ein. Wenn du den Aufruf von einmalig gleich nach start packst, passiert das nicht. Ein Hinweis aber noch. Deine Sub AutoStoppen beendet nur die Schleife von AutoMakroSt. Eine bereist ausgelöste OnTime von einmalig bleibt bestehen und wird (so Excel offen bleibt) später ausgeführt. Das müsstest du bei Bedarf anders beenden (wenn Hilfe benötigt und das gewünscht, einfach melden). HIer mal der Code, der nur einmal einmalig startet. VG
Option Explicit
Public Sub StartZeitGeber()
Sheets("Autostart").Range("A1").Value = 1
Application.OnTime Now + TimeValue("0:0:5"), "AutoMakroSt"
Application.OnTime TimeValue("14:45:00"), "Einmalig" '2min nach 24 Uhr
End Sub
Private Sub AutoMakroSt()
Sheets("StartMacro").Cells(Rows.Count, "A").End(xlUp).Offset(1).Value = Format(Now, "hh:nn:ss")
If Sheets("Autostart").Range("A1").Value = 1 Then
Application.OnTime Now + TimeValue("0:0:5"), "AutomakroSt"
End If
End Sub
Sub StoppenAuto()
Sheets("Autostart").Range("A1").Value = 0
End Sub
Sub Einmalig()
Sheets("StartMacro").Cells(Rows.Count, "B").End(xlUp).Offset(1).Value = Format(Now, "hh:nn:ss")
End Sub

Anzeige
AW: noch fehlerhaft
18.08.2017 14:48:43
stef26
Hallo Matthias,
besten Dank für deine ausführliche Analyse. Ich werde das gleich heute Abend (wenn ich mehr ruhe habe) mal testen.
Wie müsste man den Stop dann schreiben, dass dieser auch für den Einmaligen Tagesaufruf funktionieren würde?
Gruß
Stefan
AW: noch fehlerhaft
18.08.2017 19:14:30
Matthias
Moin! Also hier mal der Code angepasst. Der Code ist jetzt nicht mehr abhängig vom Eintrag in Zelle A1. Du startest ihn mit dem StartZeitGeber und stoppst beide mit StoppenAuto. Das mit dem Stoppen kannst du bspw. auch in eine BeforeClose Prozedur packen und immer wenn die Mappe geschlossen wird, enden die Aufrufe. Nach dem Chema könntest du auch die beiden Stopps noch aufsplitten.

Option Explicit
Dim startAutoMakro As Double
Dim startEinmalig As Double
Public Sub StartZeitGeber()
startAutoMakro = Now + TimeValue("0:0:5")
Application.OnTime startAutoMakro, "AutoMakroSt"
startEinmalig = TimeValue("19:30:00")
Application.OnTime startEinmalig, "Einmalig" '2min nach 24 Uhr
End Sub
Private Sub AutoMakroSt()
Sheets("StartMacro").Cells(Rows.Count, "A").End(xlUp).Offset(1).Value = Format(Now, "hh:nn:ss")
startAutoMakro = Now + TimeValue("0:0:5")
Application.OnTime startAutoMakro, "AutomakroSt"
End Sub
Sub StoppenAuto()
On Error Resume Next
Application.OnTime startAutoMakro, "AutomakroSt", , False
Application.OnTime startEinmalig, "Einmalig", False
End Sub
Sub Einmalig()
Sheets("StartMacro").Cells(Rows.Count, "B").End(xlUp).Offset(1).Value = Format(Now, "hh:nn:ss")
End Sub
Und hier auch noch mal ein Link zum Recherchieren.
http://www.online-excel.de/excel/singsel_vba.php?f=133
Bei Fragen einfach nochmal melden.
VG
Anzeige
AW: noch fehlerhaft
18.08.2017 20:05:40
stef26
Hallo Matthias,
das ist ja absolute spitze was du einem hier an Support zukommen lässt. Vielen herzlichen Dank dafür!!!
Super erklärt. Ich bin gerne hier im Forum um nach und nach zu lernen wie man Sachen umsetzen kann.
Selbst wenn ich keine Fragen habe.
Super Forum
Vielen Dank für die Unterstützung
Liebe Grüße
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige