Hallo, Garvey!
Ich habe einen Excel-Mappe mit Makro.
Nun möchte ich, dass das Makro zu einem vorgegebenen Intervall
(zB „jeden Tag um 7.30Uhr“; oder auch „alle 30min“)
automatisch startet.
Die Mappe kann ruhig die ganze Zeit geöffnet bleiben, es muss
also nicht Excel, sondern „nur“ das Makro gestartet werden.
Nicht schön, das, weil es kein Timer-Ereignis oder so gibt. Möglich wäre es, ein Makro zu schreiben, welches permanent läuft, sich also prinzipiell aufhängt.
Ich würde ggf. ein Formular bauen mit „Start“- und „Abbrechen“-Schaltfläche. Start führt das Makro aus. Abbrechen setzt eine globale Variable, die Du in Deinem Makro als Abbruch-Bedingung verwendest. In der Schleife muss zwischendrin ein „DoEvents“ stehen, damit auf die Abbrechen-Schaltfläche reagiert werden kann.
Also z.B. ungefähr so:
Global gbAbbruch as Boolean
Sub Schleife
...
Do While Not gbAbbruch
If Now "ungefähr 7:30" Then
' Deine Aktionen
EndIf
DoEvents
Loop
End Sub
Sub Start\_Click()
gbAbbruch=False
Call Schleife()
EndSub
Wie immer ungetestet/uncompiliert und vor allem ohne Fehlerabfangroutinen etc.
Dabei steht die Start_Click in Deinem UserForm, die Variablendeklaration und Schleife in einem globalen Modul.
Gruß, Manfred