I have the following macro to refresh my workbook. This is the same as clicking on the refresh all button.
Is there a time element I can add to this code to refresh
Enter the following in a standard module:
Public RunWhen As Double
Public Const cRunIntervalMinutes = 15
Public Const cRunWhat = "Workbook_RefreshAll"
Sub StartTimer()
RunWhen = Now + TimeSerial(0, cRunIntervalMinutes, 0)
Application.OnTime earliesttime:=RunWhen, procedure:=cRunWhat, _
schedule:=True
End Sub
Sub StopTimer()
On Error Resume Next
Application.OnTime earliesttime:=RunWhen, _
procedure:=cRunWhat, schedule:=False
End Sub
Sub Workbook_RefreshAll()
Application.CalculateFullRebuild
ActiveWorkbook.RefreshAll
Call StartTimer
End Sub
To begin the process run StartTimer()
and to end the process run StopTimer()
Adapted from Chip Pearson's Site
I used some Shapes to run the macros:
to refresh all calculations you can use:
application.Calculate
P.S.: Sorry my english
You can use the Application.OnTime
method to schedule a macro to be run in the future: https://msdn.microsoft.com/en-us/library/office/ff196165.aspx
Yet, this is a one time event only. To make it recursive, you'll have to include in that macro (yet again) another Application.OnTime
to ensure a calling "every 15 minutes".