startTime = Now + TimeSerial(0, cTimeIntervalMins, 0)
Application.OnTime earliesttime:=startTime, procedure:=cTheMacro, schedule:=True EndSub
StartTheClock End Sub
The public variables hold the name of the macro and the time interval. The sub 'StartTheClock' does what it says..it starts counting 60 minutes from the time the sub was run. So 60 minutes later it runs the sub 'MyMacro' which calls your macro. It also runs StartTheClock again, so that the countdown begins on the next 60 minutes. You might want to put the StartTheClock routine in the Workbook Open procedure so that it runs whenever you first open the workbook. As long as Excel is open, it will continue to run.
The easy answer is to start the procedure on the hour - it will then run every 60 minutes thereafter. Otherwise I guess you would need to set up some kind of loop, with specific times in a range of cells. Not quite sure how that would work though.