Anzeige
Archiv - Navigation
1740to1744
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
Inhaltsverzeichnis

Timeranzeige

Timeranzeige
01.03.2020 14:40:59
Jubel
Hallo,
ich würde gerne einen Timer auf die Oberfläche einer UserForm bringen (d.h. ein Label, dass die Sekunden zählt), leider gelingt mir dies bisher noch nicht so recht.
Ich wollte es mit "Application.OnTime" lösen. Mein Code sieht derzeit wie folgt aus:

Private Sub CommandButton1_Click()
Call Timer
End Sub
Private Sub Timer()
Zeitzähler = Zeitzähler + 1
LabelTimer.Caption = Zeitzähler
MsgBox ("Test")
Application.OnTime Now + TimeValue("00:00:01"), "Timer"
End Sub
"Zeitzähler" ist meine Integer-Variable, die ich je Sekunde um eins hochzählen und dann auch das Label bestücken soll. Den Button möchte ich als Start-Button für den Timerzähler nutzen. Leider gelingt der "Selbstaufruf" der Sub "Timer" nicht (ich dachte, ich könnte den Selbstaufruf mit Application.OnTime lösen), daher wird sie immer nur einmal ausgelöst, wenn ich den Button klicke.
Was mache ich falsch? Bzw. gibt es eine einfachere/bessere Variante, um einen Timer auf einer Oberfläche zu haben?

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

Betreff
Datum
Anwender
Anzeige
AW: Timeranzeige
01.03.2020 17:03:42
Werni
Hallo
Mal ein Beispiel:
https://www.herber.de/bbs/user/135555.xlsm
Im Modul1:
Option Explicit
Option Private Module
Dim Bol As Boolean
Public Sub Starten()
'Uhr l?uft
Bol = False
Do
If Bol = True Then Stopp
DoEvents
UserForm1.Label1 = Time
Loop While Bol  True
End Sub
Public Sub Stopp()
'Uhr wird angehalten
Bol = True
DoEvents
End Sub

In Userform1:
Option Explicit
Private Sub CommandButton1_Click()
UserForm1.Hide
Stopp
End Sub
Private Sub userform_QueryClose(Cancel As Integer, CloseMode As Integer)
'Userform nicht ?bers Kreuz schliessen
If CloseMode = 0 Then Cancel = 1
End Sub
Gruss Werni
Anzeige
AW: Timeranzeige
01.03.2020 14:52:16
EtoPHG
Hallo,
1. Zeitzähler muss in einem Standardmodul als Public-Variable zur Verfügung stehen.
2. Die Timer-Procedure gehört ebenfalls in ein Standardmodul.
3. Es fehlt eine Stop-Procedure, um den OnTime-Aufruf zu stoppen.
4. Ggf. muss ein Repaint der Userform gemacht werden, wenn diese aktiv ist.
Gruess Hansueli

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige