Schedule a macro to run at a specific time using a macro in an excel report

This is an useful code, I used it sometimes because I wanted that once I open a report, within 30 minutes for instance, I needed in an automatic way, that another macro should run in parallel so I didn’t need to say “ohhh nooo I forgot”.


When I use the macro ?

To launch automatically a macro for a particular time.


How to create the macro ?

Read How to create, edit, hide and select a macro in an excel report


How to create the button to associate it with the macro ?

Read How to create a button and associated it to a macro in an excel report


How to use the macro ?

This code works meanwhile the report is open and it should be put inside “Workbook_Open()” function, for instance:

  • Sub Workbook_Open()
  • Private Sub Workbook_Open()


How is the macro ?

Copy the code below and paste it into your macro. You will see my comments in green if exist so follow the help to adapt to your need.

Sub Workbook_Open()
' change the time and test by the name of your other macro to be run
Application.OnTime TimeValue("15:00:00"), "test"
End Sub

In case if the “test” macro is not located in the same module, I will need to specify the module where is located “test”, for instance:

  • Application.OnTime TimeValue("15:00:00"), "ThisWorkbook.test"
  • Application.OnTime TimeValue("15:00:00"), "Module3.test"

Interesting Management