Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
788to792
788to792
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Event zur bestimmten Systemzeit auslösen

Event zur bestimmten Systemzeit auslösen
09.08.2006 12:30:41
J.
Hallo Excel-Könige,
ist es möglich, eine bestimmte Funktion auszulösen, sobald die Systemzeit auf eine bestimmte Zeit springt, ohne dabei eine Systemauslastung von 100 % zu erzeugen? Mein Versuch sah wie folgt aus:

Sub Task()
Dim i As Long
Dim jetzt As String
Dim tasktime As String
For i = 2 To 5
tasktime = Cells(i, 1).Value
For x = 1 To 70000000
jetzt = Time
Cells(i, 2).Value = Time
If jetzt = tasktime Then Exit For
Next x
Cells(i, 1).Interior.ColorIndex = 3 'oder ein anderes event!
Next i
End Sub

Wobei tasktime die Uhrzeit des Zeitplans enthält, zu dem ausgelöst werden soll.
Würde mich über eure Hilfe freuen!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Event zur bestimmten Systemzeit auslösen
09.08.2006 13:27:45
fcs
Hallo J.,
hierzu muss du mit der OnTime-Methode arbeiten. Dann kann man dies etwa wie folgt lösen.
Dabei ist wichtig, dass alle Objekte mit ihrer vollen Bezeichnung (inkl. Workbook und Sheet) angesprochen werden, da der Timer ggf. startet während eine andere Arbeitsmappe aktiv ist. Mit dem Makro "TimerStart" wird der Timer gestartet und entnimmt die nächste Startzeit jeweils aus den angegeben Zellen.

Public wbThis As Workbook, Zeile As Long, Tasktime As Date
Sub Timerstart()
Set wbThis = ActiveWorkbook
Zeile = 2 ' zeile in der die 1. Startzeit des Timers steht
Tasktime = wbThis.Sheets("Tabelle1").Cells(Zeile, 1).Value
Application.OnTime Earliesttime:=Tasktime, Procedure:="Task"
End Sub
Private Sub Task()
' Code der vom Timer ausgeführt werden soll
With wbThis.Sheets("Tabelle1")
.Cells(Zeile, 2).Value = Time
.Cells(Zeile, 1).Interior.ColorIndex = 3 'oder ein anderes event!
MsgBox "Timmer Zeit aus Zelle " & .Cells(Zeile, 1).Address 'TestZeile
End With
' Nächsten Timer Start vorbereiten
Zeile = Zeile + 1 ' Zeilen mit weiteren Timer Starts
If Zeile < 6 Then
Tasktime = wbThis.Sheets("Tabelle1").Cells(Zeile, 1).Value
Application.OnTime Earliesttime:=Tasktime, Procedure:="Task"
End If
End Sub
zusätzlich sollte eine Workbook_BeforeClose Prozedur unter diese Arbeitsmappe
den letzten OnTime-Start löschen wenn die Datei geschlossen wird, bevor der letzte OnTime-Start erfolgt ist.
Private Sub Workbook_BeforeClose(Cancel As Boolean)
On Error Resume Next
Application.OnTime Earliesttime:=Tasktime, Procedure:="Task", Schedule:=False
End Sub

gruss
Franz
Anzeige
AW: Event zur bestimmten Systemzeit auslösen
09.08.2006 14:20:33
J.
Hallo Franz,
das J. steht für Jörg ;-)
Vielen Dank für die ober geniale Lösung, damit hat der MS-Taskmanager ausgedient! Mein CPU bedankt sich auch recht herzlich, der wäre sonst den Hitzetot gestorben!
wenns einer drauf hat, dann du! Danke nochmal!
Nice GreeZ auch an www.herber.de ;-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige