agihcam. Your creative code will eventually produce an "Out of stack space" error. Run it for several moments, pause your code, click on "View, Call Stack".
VitaminB6. Start this by running "Sub StartOnTime()" Assuming that the procedure, "StockPrice", is located within a standard module...
<table width="100%" border="1" bgcolor="White" style="filter
rogid:DXImageTransform.Microsoft.Gradient(endColorstr='#C0CFE2', startColorstr='#FFFFFF', gradientType='0');"><tr><TD><font size="2" face=Courier New> <font color="#0000A0">Option</font> <font color="#0000A0">Explicit</font>
<font color="#0000A0">Private</font> <font color="#0000A0">Const</font> StartTime <font color="#0000A0">As</font> <font color="#0000A0">Date</font> = #8:30:00 AM#
<font color="#0000A0">Private</font> <font color="#0000A0">Const</font> EndTime <font color="#0000A0">As</font> <font color="#0000A0">Date</font> = #1:30:00 PM#
<font color="#0000A0">Private</font> <font color="#0000A0">Const</font> IntervalInSeconds <font color="#0000A0">As</font> <font color="#0000A0">Double</font> = 5
<font color="#0000A0">Private</font> <font color="#0000A0">Const</font> ProcedureToRun <font color="#0000A0">As</font> <font color="#0000A0">String</font> = "StockPriceMain"
<font color="#0000A0">Private</font> NextRunTime <font color="#0000A0">As</font> <font color="#0000A0">Date</font>
<font color="#0000A0">Sub</font> StartOnTime()
<font color="#0000A0">If</font> (TimeValue(Now) < StartTime) <font color="#0000A0">Or</font> (TimeValue(Now) > EndTime) <font color="#0000A0">Then</font>
StopOnTime
<font color="#0000A0">Exit</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">End</font> <font color="#0000A0">If</font>
NextRunTime = DateAdd("s", IntervalInSeconds, Now)
Application.OnTime NextRunTime, ProcedureToRun, , <font color="#0000A0">True</font>
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">Sub</font> StopOnTime()
<font color="#0000A0">On</font> <font color="#0000A0">Error</font> <font color="#0000A0">Resume</font> <font color="#0000A0">Next</font>
Application.OnTime NextRunTime, ProcedureToRun, , <font color="#0000A0">False</font>
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
<font color="#0000A0">Sub</font> StockPriceMain()
StartOnTime
Sheets("Temp").Select
<font color="#0000A0">Call</font> StockPrice("9915")
<font color="#0000A0">End</font> <font color="#0000A0">Sub</font>
</FONT></td></tr></table><button onclick='document.all("9112006223923750").value=document.all("9112006223923750").value.replace(/<br \/>\s\s/g,"");document.all("9112006223923750").value=document.all("9112006223923750").value.replace(/<br \/>/g,"");window.clipboardData.setData("Text",document.all("9112006223923750").value);'>Copy to Clipboard</BUTTON><textarea style="position:absolute;visibility:hidden" name="9112006223923750" wrap="virtual">
Option Explicit
Private Const StartTime As Date = #8:30:00 AM#
Private Const EndTime As Date = #1:30:00 PM#
Private Const IntervalInSeconds As Double = 5
Private Const ProcedureToRun As String = "StockPriceMain"
Private NextRunTime As Date
Sub StartOnTime()
If (TimeValue(Now) < StartTime) Or (TimeValue(Now) > EndTime) Then
StopOnTime
Exit Sub
End If
NextRunTime = DateAdd("s", IntervalInSeconds, Now)
Application.OnTime NextRunTime, ProcedureToRun, , True
End Sub
Sub StopOnTime()
On Error Resume Next
Application.OnTime NextRunTime, ProcedureToRun, , False
End Sub
Sub StockPriceMain()
StartOnTime
Sheets("Temp").Select
Call StockPrice("9915")
End Sub</textarea>