Bool-Variable setzen und regelmässig abfragen
17.06.2005 18:43:40
reiner
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