Anzeige
Archiv - Navigation
836to840
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
836to840
836to840
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Kontrollkästchen mit Ontime-Makro

Kontrollkästchen mit Ontime-Makro
14.01.2007 16:16:17
neo1380
Hallo Gemeinde,
ich habe ein Kontrollkästchen mit einem Ontime.Application Makro verlinkt, das sich aktiviert sobald der Haken gesetzt ist. Das Timeintervall beträgt 30 sec für jede Aktualisierung.
Das Problem tritt auf wenn ich den Haken wieder raussetze. Die Aktualisierung läuft dennoch weiter. Folgendes Makro regelt das Kontrollkästchen.

Sub Kontrollkästchen1_BeiKlick()
Start
End Sub

Wie kann das sein, dass das Makro weiterläuft obwohl der Haken nicht mehr gesetzt ist?
Weiß jemand Rat?
Gruß
neo

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kontrollkästchen mit Ontime-Makro
14.01.2007 16:28:17
Herbert
Hi,
Hilfe nicht installiert? Dort ist ein aussagekräftiges Beispiel, wie
die Prozedur wieder gestoppt werden kann.
mfg Herbert
AW: Kontrollkästchen mit Ontime-Makro
14.01.2007 16:33:34
neo1380
Hallo Herbert,
nein ich habe die Hilfe leider nicht installiert. Die CD habe ich nicht zur Hand. Kannst du mir bitte das Beispiel kopieren?
Gruß
neo
AW: Kontrollkästchen mit Ontime-Makro
14.01.2007 16:37:46
Herbert
OnTime-Methode
Bewirkt, dass eine Prozedur zu einem bestimmten Zeitpunkt in der Zukunft (entweder zu einer bestimmten Zeit oder nachdem eine bestimmte Zeitspanne vergangen ist) ausgeführt wird.
Ausdruck.OnTime(EarliestTime, Procedure, LatestTime, Schedule)
Ausdruck Erforderlich. Ein Ausdruck, der ein Application-Objekt zurückgibt.
EarliestTime Erforderlicher Variant-Wert. Die Zeit, zu der diese Prozedur ausgeführt werden soll.
Procedure Erforderlicher String-Wert. Der Name der auszuführenden Prozedur.
LatestTime Optionaler Variant-Wert. Der späteste Zeitpunkt zum Ausführen der Prozedur. Wenn beispielsweise LatestTime auf EarliestTime + 30 festgelegt und Microsoft Excel im Zusammenhang mit EarliestTime nicht im Ready, Copy, Cut oder Find-Modus ist, da eine andere Prozedur ausgeführt wird, wartet Microsoft Excel 30 Sekunden auf das Beenden der ersten Prozedur. Wenn Microsoft Excel innerhalb von 30 Sekunden nicht im Ready-Modus ist, wird die Prozedur nicht ausgeführt. Wenn dieses Argument ausgelassen wird, wartet Microsoft Excel, bis die Prozedur ausgeführt werden kann.
Schedule Optionaler Variant-Wert. True führt eine neue OnTime-Prozedur aus. False löscht eine vorher eingestellte Prozedur. Der Standardwert ist True.
Anmerkung
Verwenden Sie Now + TimeValue(time) zum Ausführen eines Programms o.ä. nach einer bestimmten Zeit (von jetzt an gezählt). Verwenden Sie TimeValue(time) zum Ausführen eines Programms o.ä. für eine bestimmte Zeit.
Beispiel
In diesem Beispiel wird "my_Procedure" nach 15 Sekunden ausgeführt.
Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
Im folgenden Beispiel wird "my_Procedure" um 17 Uhr ausgeführt.
Application.OnTime TimeValue("17:00:00"), "my_Procedure"
In diesem Beispiel wird die OnTime-Einstellung aus dem vorherigen Beispiel gelöscht.
Application.OnTime EarliestTime:=TimeValue("17:00:00"), _
Procedure:="my_Procedure", Schedule:=False
mfg Herbert
Anzeige
AW: Kontrollkästchen mit Ontime-Makro
14.01.2007 16:34:00
fcs
Hallo Neo,
die Timer-Routine ruft sich bei dir wahrscheinlich rekursiv immer wieder selber auf mit einer neuen Startzeit.
Du muss deine Prozedur "Kontrollkästchen1_BeiKlick" so umbauen, dass zusätzlich der Status des Kontrollkästchens abgefragt wird (True oder False) und dann bei True die Start-Prozedur aufgerufen wird und bei False eine Prozedur, die den Timer abschaltet. Dabei muss du OnTime mit den den gleichen Parametern aufrufen wie in der Start-Prozedur und zusätzlich den Paramter Schedule:=False angeben.
Gruss
Franz
AW: Kontrollkästchen mit Ontime-Makro
14.01.2007 16:56:56
neo1380
Hallo fcs,
könnte es unter Umständen folgendermaßen funktionieren?

Sub Kontrollkästchen1_BeiKlick()
If Kontrollkästchen1_BeiKlick is true
then
Start(Makro mit der Ontime funktion)
else
Start, Schedule:=False
End Sub

Kann es leider nicht ausprobieren und so gut sind meine Kenntnisse nicht als dass ich jetzt sagen könnte ob es stimmt.
Gruß
neo
Anzeige
AW: Kontrollkästchen mit Ontime-Makro
14.01.2007 18:49:09
fcs
Hallo neo,
das Ganze muss etwa so aussehen:

Dim Zeitpunkt As Date
Sub Kontrollkästchen1_BeiKlick()
Dim wks As Worksheet, Box As Shape
On Error Resume Next
Set wks = Worksheets("Tabelle1")
Set Box = wks.Shapes("Kontrollkästchen 1")
If Box.ControlFormat.Value = 1 Then
Start
Else
Application.OnTime Earliesttime:=Zeitpunkt, Procedure:="Start", Schedule:=False
MsgBox "Timer ist deaktiviert"
End If
End Sub
Sub Start()
'Code für Aktualisiereung
Zeitpunkt = Now + 30 / 3600 / 24
Application.OnTime Earliesttime:=Zeitpunkt, Procedure:="Start"
'MsgBox "Timer läuft" 'Testzeile
End Sub

Die Namen von Tabelle und Kontrollkästchen muss du ggf. noch anpassen.
Gruss
Franz
Anzeige
AW: Kontrollkästchen mit Ontime-Makro
14.01.2007 19:52:44
neo1380
Hallo Franz,
danke. Werde es gleich mal ausprobieren morgen.
Gruß
neo

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige