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

Bool-Variable setzen und regelmässig abfragen

Bool-Variable setzen und regelmässig abfragen
17.06.2005 18:43:40
reiner
Hallo Leute,
vor einigen Tagen habe ich die nachfolgende Anfrage bereits ins Forum gestellt und auch eine Antwort sh. unten erhalten. Leider warf die Antwort neue Fragen auf die ich leider aufgrund meines VBA-Wissens derzeit noch nicht selber beantworten kann und somit hoffe ich darauf, dass mir ein VBA-Crack wirklich weiterhelfen kann.
Beim Öffnen einer Exceldatei wird gleichzeitig eine Userform mit mehreren Schaltflächen geladen und eine Zeiteinheit gestartet. Nach Ablauf von 20 sek schließt diese Userform automatisch falls in diesem Zeitraum wider Erwarten keine Schaltfläche betätigt wurde.
Bei einem Wechsel des Tabellenblatts innerhalb dieser 20 sek wird die UserForm ausgeblendet; die Zeit zählt jedoch weiter rückwärts bis auf 0 sek. Ich würde gern die Zeiteinheit stoppen wenn ein anderes Tabellenblatt gewählt wurde.
--------------
Im VBA-Projektexplorer erscheint unter „MS EXCEL Objekte“ als erster Eintrag „Diese Arbeitsmappe“; in diesem Projektordner ist der Programmcode zur Erkennung des Tabellenblattwechsels gespeichert:
“

Private Sub Workbook_SheetActivate(ByVal Sh As Object)”
“If UserForm1.Visible Then UserForm1.Hide”
„End Sub
“
-------------
Unter „Formulare“ -->”UserForm1” enthält der Programmcode den über eine Befehlsschaltfläche ausgelösten Befehl: „Call KillTimer(hwnd, 0)“. Die eigentliche Funktion ist im zugehörigen Modul direkt unter: „Option Explicit“ abgespeichert mit dem Code: “Public Declare Function KillTimer Lib "user32" (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long“

Hier die bereits angesprochene Antwort: „...eine globale Bool-Variable setzen und sie regelmässig -jede Sekunde- abfragen. Beim Tabellenwechsel die Variable auf "False" setzen und den Counter stoppen bis die Variable durch das Aktivieren der ersten Tabelle wieder auf "True" gesetzt wird“
Eine globale Bool-Variable habe ich bereits gesetzt; nur wie soll ich diese regelmäßig abfragen?
Gruß reiner

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bool-Variable setzen und regelmässig abfragen
17.06.2005 18:59:37
Horst
Hi,
schau dir mal die OnTime-Methode an.
mfg Horst
AW: Bool-Variable setzen und regelmässig abfragen
17.06.2005 21:38:24
reiner
hallo horst,
diese Idee hatte ich auch schon, ist aber wohl noch nicht die Lösung, schade
reiner
AW: Bool-Variable setzen und regelmässig abfragen
18.06.2005 15:12:20
andre
Hallo Reiner,
da steckt bestimmt die Lösung:

Sub test()
'In diesem Beispiel wird "my_Procedure" nach 15 Sekunden ausgeführt.
'Application.OnTime Now + TimeValue("00:00:15"), "my_Procedure"
'angepasst:
whattime = Now + TimeValue("00:00:03")
Application.OnTime whattime, "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
'angepasst
Application.OnTime EarliestTime:=whattime, _
Procedure:="my_Procedure", Schedule:=False
End Sub


Sub my_procedure()
MsgBox 1
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige