Makro lässt sich nicht abstellen
tco99
Hallo zusammen,
ich habe mal wieder ein Problem.
Ich starte ein Makro, welches nach Zeitvorgabe weitere Makros startet. Den Start führe ich mit einer Schaltfläche aus. Mit einer weiteren Schaltfläche möchte ich den gesamten Prozess stoppen bzw. beenden. Das gelingt mir aber nicht. Der Prozess läuft einfach weiter.
Erkennt jemand einen Fehler?
Dank und Gruß
Erdogan
PS: Feedback ist selbstverständlich.
-----------------------------------------------------------------------------------------
Alles in einem allgemeinen Modul:
Option Explicit
Hier deklariere ich
------------------------------------------------------------------------------------
Dim iTimerSet5 As Double
Dim iTimerSet4 As Double
Dim iTimerSet3 As Double
Dim iTimerSet2 As Double
Dim iTimerSet1 As Double
Dim iTimerSet0 As Double
Hier starte ich das erste Makro, welches weitere Makros startet
------------------------------------------------------------------------------------
Sub SanduhrStart()
'Grundposition
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
'Zeiten setzen
iTimerSet5 = Now + TimeValue("00:00:01")
iTimerSet4 = Now + TimeValue("00:00:03")
iTimerSet3 = Now + TimeValue("00:00:07")
iTimerSet2 = Now + TimeValue("00:00:10")
iTimerSet1 = Now + TimeValue("00:00:13")
iTimerSet0 = Now + TimeValue("00:00:15")
'Zeit läuft
Application.OnTime iTimerSet5, "Noch5Minuten"
Application.OnTime iTimerSet4, "Noch4Minuten"
Application.OnTime iTimerSet3, "Noch3Minuten"
Application.OnTime iTimerSet2, "Noch2Minuten"
Application.OnTime iTimerSet1, "Noch1Minuten"
Application.OnTime iTimerSet0, "Noch0Minuten"
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
Call SanduhrEnde
End Sub
Hier sind die Teilmakros, die nacheinander gestartet werden
------------------------------------------------------------------------------------
Sub Noch5Minuten()
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
Uebersicht.Label5Minuten.Visible = True
End Sub
Sub Noch4Minuten()
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = True
End Sub
Sub Noch3Minuten()
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = True
End Sub
Sub Noch2Minuten()
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = True
End Sub
Sub Noch1Minuten()
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = True
End Sub
Sub Noch0Minuten()
Uebersicht.Label5Minuten.Visible = False
Uebersicht.Label4Minuten.Visible = False
Uebersicht.Label3Minuten.Visible = False
Uebersicht.Label2Minuten.Visible = False
Uebersicht.Label1Minuten.Visible = False
End Sub
Dieses Makro soll den Prozess zu beliebiger Zeit stoppen bzw. beenden
------------------------------------------------------------------------------------
Sub SanduhrEnde()
On Error Resume Next
Application.OnTime Now + TimeValue("00:00:00"), Procedure:="Noch5Minuten", Schedule:=False
Application.OnTime Now + TimeValue("00:00:00"), Procedure:="Noch4Minuten", Schedule:=False
Application.OnTime Now + TimeValue("00:00:00"), Procedure:="Noch3Minuten", Schedule:=False
Application.OnTime Now + TimeValue("00:00:00"), Procedure:="Noch2Minuten", Schedule:=False
Application.OnTime Now + TimeValue("00:00:00"), Procedure:="Noch1Minuten", Schedule:=False
Call Noch0Minuten
End Sub