-
Excel – VBA Timer Example v1.00
Ein Freund hatte mich einmal gefragt, ob es nicht irgendwie möglich sei, einzelne Arbeitsblätter in Excel automatisch periodisch aktualisieren zu lassen.
Das erste was ich dann tat, war im Internet nach einer entspr. Lösung in Visual Basic for Applications zu suchen, aber das einzige was ich fand, war ein ActiveX Timer Control eines Drittanbieters, welches man auf einer Userform platzieren muß. Dann fand ich zufällig den VBA Befehl “Application.onTime” und hatte eine Idee.Hier ist nun meine Lösung, welche nur das VBA onTime Kommando verwendet. Kein ActiveX Control oder irgend ein anderes 3rd-Party Modul sind hierfür nötig.
ExcelTimerExample.zip (11.0 KiB, 10,827 hits)
14 responses to “Excel – VBA Timer Example v1.00”
-
Das Programm verwendet die dafür vorgesehene Excel-VBA-Funktion
Application.OnTimer(AufrufUhrzeit as Date, NameMeinerSub as String)
wie in der Excel-Hilfe vorgeschlagen:
Application.OnTimer( now()+TimeSerial(0,0,5) , NameMeinerSub as String) ‘ 5 Sekunden
Bug/Problem der Funktion: Wenn die Uhr des PC um 1 Stunde vorgestellt wird, dauert der nächste Aufruf 1 Stunde! -
Dear Sebastian,
I am trying to update my portfolio by picking up the quotations at Yahoo every 20 minutes. I would like to understand the way this macro works. the button start timer activates which macro. the code I have to put where you say “put your code here” does not seem to execute. Can you please help
Thank you
Alain
-
Andrew 7:38 at 7:38
am i jest being retarded, or has the download link been removed?
-
Andrew 7:39 at 7:39
*just <- early signs of retardation
-
Hartmut Gierke 20:00 at 20:00
Hi Andrew,
try the following as VBA code on a worksheet (e.g. table1):
”————————————–
”Require that all variables be declared
Option Explicit
Dim Execute_TimerDrivenMacro As Boolean
‘Sub Start_OnTimerMacro()
Execute_TimerDrivenMacro = True
Application.OnTime Time + TimeValue(“00:00:01″), ActiveSheet.Name & “.OnTimerMacro”
End SubSub Stop_OnTimerMacro()
Execute_TimerDrivenMacro = False
End SubPublic Sub OnTimerMacro()
If Execute_TimerDrivenMacro Then
‘ Do something e.g. put the actual time into cell A1 of the active sheet
ActiveSheet.Cells(1, 1).Value = Time‘ At the end restart timer
Application.OnTime Time + TimeValue(“00:00:01″), ActiveSheet.Name & “.OnTimerMacro”
End If
End SubPrivate Sub Worksheet_Activate()
‘Start the timer driven method when opening the sheet
Start_OnTimerMacro
End SubPrivate Sub Worksheet_Deactivate()
‘Stop the timer driven method when opening the sheet
Stop_OnTimerMacro
End Sub
”————————————–Hope that helps.
Kind regards,
Hartmut -
devit 11:43 at 11:43
that’s is goodcode!
excelent!
oh! yea!
thank! -
Alex_F 11:25 at 11:25
Super, vielen Dank. Kann ich sehr gut gebrauchen zum periodischen/stündlichen Auslesen eines Temperatursensors am Comport mit Excel.
-
Tony H 4:45 at 4:45
Thanks for posting this code. I was looking for an example of a on_timer function for Excel that matches the functionality of MFC. This example was more helpful then the Microsoft help.
Appreciate it.
T.H. -
Very cool procedures. You need to edit this line of code to make it work:
CHANG Cell Reference in “interval = CDbl(Range(“D8″).Value)” to
interval = CDbl(Range(“D7″).Value)Very elegant and nice. Solved my problem
-
Great code – many thanks
-
Very helpful to me. Thanks!!
-
How we can activate Timer in Excel so while we lock the system the timer got activated.
9212034544 -
muro 23:14 at 23:14
thx!
-
Adi 8:12 at 8:12
Super,
einfach und wirksam.
Kleiner Fehler in VB interval verweist auf D8,
da ist aber nichts
Leave a reply
-


Looking for a high performer for your next IT project?


English
Deutsch
Recent Comments