You need to pass the EXACT time of the timer back to OnTime in order to
cancel the timer. Therefore, you should create a public variable outside of
any procedure and store the time in that variable.
Public RunWhen As Double
Sub RunMacro()
RunWhen = Now + TimeValue("00:00:05")
Application.RunWhen, "OnTimeMacro"
End Sub
Sub byebye()
Application.OnTime EarliestTime:=RunWhen, _
Procedu="my_Procedure", Schedule:=False
MsgBox "Bye Bye"
End Sub
See
http://www.cpearson.com/excel/ontime.aspx for full details.
--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting
www.cpearson.com
(email on the web site)
"Dan" wrote in message
...
Hi,
I need to run a process repeatively, but I need to be able to stop it too
or
change the timing , but keep getting the following error when trying to
stop
the process " Run-Time error '1004': Method 'ONTIME' of Object
'Application'
Failed"
Any idea why, or how I should do it instead.
Many thanks
Sub RunMacro()
Application.OnTime Now + TimeValue("00:00:05"), "OnTimeMacro"
End Sub
Sub OntimeMacro()
MsgBox "hello"
RunMacro
End Sub
Sub byebye()
Application.OnTime EarliestTime:=TimeValue("00:00:05"),
Procedu="my_Procedure", Schedule:=False ' this is where I keep getting
the
error?
MsgBox "Bye Bye"
End Sub