Makro zu festen Uhrzeiten starten

Bild

Betrifft: Makro zu festen Uhrzeiten starten
von: Herman
Geschrieben am: 14.07.2015 14:56:46

Hallo,
kurze Frage: ich würde ein bestimmtes Makro ganz gerne nur zu bestimmten Uhrzeiten starten. Bisher habe ich es nur hinbekommen, dass das Makro alle 10minuten ausgeführt wird (es ruft ein weiteres Makro auf). Ich würde jetzt aber allerdings gerne, dass das Makro von 01:10 an alle 10minuten ausgeführt wird. Wie realisiere ich das am besten?
Dazu direkt noch eine Frage: Was passiert, wenn die Datei meinetwegen 01:12 geöffnet wird? Das Makro wird dann ja richtigerweise nicht ausgeführt, sobald es allerdings 01:20 etc. ist, soll es hingegen wieder gestartet werden. Wie muss also die Überprüfung der Uhrzeit implementiert werden?
Vielen Dank im Voraus!

Bild

Betrifft: AW: Makro zu festen Uhrzeiten starten
von: Nepumuk
Geschrieben am: 14.07.2015 16:30:59
Hallo,
ein Beispiel:

Option Explicit

Private Sub Workbook_Open()
    Call Application.OnTime(EarliestTime:=TimeSerial(1, 10, 0), _
        Procedure:="DeinMakro", LatestTime:=TimeSerial(1, 20, 0), Schedule:=True)
End Sub

Falls 01:10 eigentlich 13:10 sein soll. musst du das natürlich anpassen.
Gruß
Nepumuk

Bild

Betrifft: AW: Makro zu festen Uhrzeiten starten
von: Herman
Geschrieben am: 14.07.2015 21:03:18
Hallo,
danke für deine Antwort, ich werde das Ganze morgen mal ausprobieren. Direkt zu Anfang allerdings eine Frage:
Löst das denn tatsächlich mein Problem? Noch einmal kurz mein Problem erläutert:
Aus einem ERP-System wird jeden Tag im 10-Minuten-Takt eine Datei exportiert. Also 0:05, 0:15, 0,25.. etc. Diese exportierte Datei, wird über eine Datenverbindung in eine Exceltabelle geladen. Da es im Moment häufig vorkommt, dass das ERP-System mit dem Export der Datei noch nicht fertig ist, der VBA-Code aber dennoch stumpf alle 10-Minuten die Datei importiert, kommt es häufig zu Fehlern.
Ich möchte dies wie folgt lösen: Der Import soll nicht stumpf mit dem öffnen der Arbeitsmappe alle 10minuten ausgeführt werden, sondern zu festen Zeiten, leicht versetzt zum Export aus dem ERP-System. Daher soll der Import beispielsweise 0:10, 0:20 bzw. 15:30 usw. automatisch durchgeführt werden, ohne Pause in einer Schleife bis die Arbeitsmappe geschlossen wird. Ich hoffe ich konnte mein Anliegen etwas verdeutlichen.
So wie ich deinen Code jetzt verstehe, wird der Code zwar um 1:10 ausgeführt, allerdings darüber hinaus nicht. Natürlich könnte ich deinen Code jetzt gefühlte 200 mal aufschreiben, in der jede "erlaubte" Uhrzeit überprüft wird (also 0:10, 0:20.... 14:10, 14:50 etc.) genau das möchte ich aber vermeiden und gerne einfacher und dynamischer lösen.
Ich möchte also quasi dem Makro sagen "importiere immer zur vollen zehnten Minute (damit meine ich 10,20,30,40,50,00) einer Stunde die Datei" - wie kann ich das lösen?

Bild

Betrifft: AW: Makro zu festen Uhrzeiten starten
von: Nepumuk
Geschrieben am: 14.07.2015 21:33:42
Hallo,
der Aufruf erfolgt frühestens um 01:10 und spätestens 01:20.
Gruß
Nepumuk

Bild

Betrifft: AW: Makro zu festen Uhrzeiten starten
von: Herman
Geschrieben am: 16.07.2015 07:25:57
Hallo,
ich habe das Problem jetzt wie folgt gelöst (wahrscheinlich nicht die schönste Lösung, aber es scheint zu klappen)

Sub oeffnen()
Dim i As Integer
Dim stunde As Integer
Dim minute As Integer
stunde = 0
minute = 0
For i = 0 To 150
 Application.OnTime TimeSerial(stunde, minute, 0), "HoleDaten", TimeSerial(stunde, minute, 59)
 stunde = stunde + 1
 minute = minute + 10
 If minute = 60 Then
   minute = 0
 End If
 If stunde = 23 Then
   stunde = 0
 End If
Next i
Call schleife
End Sub


Bild

Betrifft: AW: Makro zu festen Uhrzeiten starten
von: Herman
Geschrieben am: 16.07.2015 07:27:44
nachtrag meinerseits

if stunde = 24 then
muss es heißen

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro zu festen Uhrzeiten starten"