ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Programming (https://www.excelbanter.com/excel-programming/)
-   -   OnTime Application Newbie Question (https://www.excelbanter.com/excel-programming/393754-ontime-application-newbie-question.html)

John V[_2_]

OnTime Application Newbie Question
 
I have cobbled together Chip Pearson's code for running an macro queries of
Yahoo Finance for stock data (code also borrowed). Here's the basic structure
so far:

Public RunWhen As Double
Public Const cRunIntervalSeconds = 120 ' two minutes
Public Const cRunWhat = "GetData" ' the name of the procedure to run

Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime EarliestTime:=RunWhen, Procedu=cRunWhat,
Schedule:=True
End Sub

Sub GetData()
<my code
StartTimer
End Sub

There is also another generic piece of code courtesy of Mr. Pearson:

Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=RunWhen, Procedu=cRunWhat,
Schedule:=False
End Sub

...but it is not currently being called.

I want to 1) GetData (see above) between 9:00 and 15:30 daily only (this
spreadsheet will reside on a dedicated computer, hopefully always on), and 2)
perform other macros at, say, 8:30 and 16:00 daily. I am uncertain how these
last two items get coded. Any help appreciated.


Bob Phillips

OnTime Application Newbie Question
 
Public RunWhen As Double
Public Const cRunIntervalSeconds = 120 ' two minutes
Public cRunWhat As String ' the name of the procedure to run

Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
If RunWhen - Int(RunWhen) = TimeSerial(8, 30, 0) And _
RunWhen - Int(RunWhen) <= TimeSerial(16, 0, 0) Then
cRunWhat = "GetData"
Else
cRunWhat = "StartTimer"
End If
Application.OnTime EarliestTime:=RunWhen, _
Procedu=cRunWhat, _
Schedule:=True
End Sub

Sub GetData()
MsgBox "hello" '<my code
StartTimer
End Sub


Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=RunWhen, _
Procedu=cRunWhat, _
Schedule:=False
End Sub



--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)



"John V" wrote in message
...
I have cobbled together Chip Pearson's code for running an macro queries of
Yahoo Finance for stock data (code also borrowed). Here's the basic
structure
so far:

Public RunWhen As Double
Public Const cRunIntervalSeconds = 120 ' two minutes
Public Const cRunWhat = "GetData" ' the name of the procedure to run

Sub StartTimer()
RunWhen = Now + TimeSerial(0, 0, cRunIntervalSeconds)
Application.OnTime EarliestTime:=RunWhen, Procedu=cRunWhat,
Schedule:=True
End Sub

Sub GetData()
<my code
StartTimer
End Sub

There is also another generic piece of code courtesy of Mr. Pearson:

Sub StopTimer()
On Error Resume Next
Application.OnTime EarliestTime:=RunWhen, Procedu=cRunWhat,
Schedule:=False
End Sub

..but it is not currently being called.

I want to 1) GetData (see above) between 9:00 and 15:30 daily only (this
spreadsheet will reside on a dedicated computer, hopefully always on), and
2)
perform other macros at, say, 8:30 and 16:00 daily. I am uncertain how
these
last two items get coded. Any help appreciated.





All times are GMT +1. The time now is 11:15 AM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com