This should do the trick:
Public Sub RunSubInXSeconds(secondsToWait As Long, nameOfFunction As String) Application.OnTime Now + secondsToWait/(24
Although you need to be a little careful with OnTime, especially if you are going to set it up for a long period of time ... For example. if you close the workbook before the timer expires and Sub executes, you can end your workbook to start it. Confuse if you do not expect it!
source share