Public RunWhen As Date
Public Const cRunIntervalSeconds = 60 'adjust to the time you wish
Public Const cRunWhat = "TheSub"
Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
Schedule:=True
End Sub
Sub TheSub()
If ActiveSheet.Name = "MySheetName" Then
MyMacro
StartTimer
Else: StartTimer
End If
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=RunWhen, Procedure:=cRunWhat, _
Schedule:=False
End Sub
Sub Start()
Application.OnTime Date + TimeSerial(8, 0, 0), "StartTimer", Date + TimeSerial(14, 0, 0), Schedule:=True
End Sub
Sub Finish()
Application.OnTime Date + TimeSerial(14, 0, 30), "StopTimer", Date + TimeSerial(14, 1, 0), Schedule:=True
End Sub