ohne zu warten dass die vorhergehende Sub endet.
Sub Macro3()
Macro1
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 0.5
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Macro1
End Sub
Sub Macro3()
Macro1
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 0.5
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
Macro1
End Sub
schau Dir dazu in der Hilfe mal die OnTime-Methode an.
Hierdurch kann ein Prozedur zeitgesteuert aufgerufen werden.
Gruß
Axel
Danke für deinen Tip. Das Problem ist, dass bevor OnTime
aufgerufen wird, Macro1 beendet sein muss, ich möchte aber Macro1 mehrere Male gleichzeitig laufen lassen.
Gruss
Adi
wo liegt das Problem?
Teste mal den folgenden Code
Sub x() startet sub y() jeweils in 1, 2, und 3 Sekunden und ist beim Aufruf von sub y() längst beendet.
Gruß
Axel
Das Problem ist, das Y() immer fertig sein muss
bevor Y() wieder gestartet wird. Ich möchte aber,
dass der 1.Aufruf von Y() und der n.Aufruf von Y()
gleichzeitig laufen.
Gruss
Adi
das ist doch ein Widerspruch!
Du möchtest einerseits das y() erst nach y() startet (Deine erste Aussage), andererseits aber alle y() gleichzeitig starten (Deine zweite Aussage).
Das wirst Du in keiner Programmiersprache realisieren.
Sorry.
Gruß
Axel
sorry, ich habe mich nicht klar ausgedrückt.
y() laüft ca. 1 Min.
Ich möchte, dass y(2) zum Bsp. 1Sek nach y(1) startet ohne
auf die Beendigung von y(1) zu warten. Das bedeutet, dass
y() zweimal gleichzeitig, leicht zeitversetzt läuft.
Gruss
Adi
alles klar.
Das ist in VBA leider nicht zu realisieren, da innerhalb einer Application-Instanz immer nur ein Makro (eine Prozedur) zu einem Zeitpunkt aktiv sein kann.
Die OnTime-Methode blockiert deshalb auch solange, bis der Ablauf eines anderen Codeteils innerhalb des Projektes abgearbeitet ist.
Sorry, keine Lösung meinerseits.
Gruß
Axeö