Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
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

Countdown oder Timer

Countdown oder Timer
Ximena
Guten Morgen ihre Lieben
Ich habe mal wieder ein kleines Problem. Ich arbeite mit Word, aber ich denke, wenn ich eine Excel-Lösung habe, dann kann ich das irgendwie umbasteln und dann geht das :D aber mir fehlt sogar der Ansatz.
Mein Vorhaben ist, dass ich per Knopfdruck eine Makro starten kann. Dann soll ich UserForm erscheinen, auf dem ein Label mit dem Text "Die Makro startet in" ist. Darunter soll dann ein zweites Label sein, dass ein Countdown ist und von 10 Sekunden rückwärts zählt. Nachdem diese 10 Sekunden vorbei sind, sollte "Die Makro starte in 00.00.00" stehen und das Userform soll verschwinden und die Makro soll weitergehen.
Doch ich weiss nicht, wie ich das anstelle! Die Zeit ist immer 10 Sekunden, das kann ich also als Konstante nehmen, aber ich finde überhaupt keinen Ansatz und ich weiss auch gar nicht, ob das ein Timer oder ein Countdown ist.
Ausserdem weiss ich auch nicht, wie ich das programmieren muss, dass das Userform sich nach 10 Sekunden automatisch schliesst... Stehe also bei 0 und wäre froh um ein wenig Hilfe!
Ganz liebe Grüsse
Ximena

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

Betreff
Benutzer
Anzeige
AW: Countdown oder Timer
18.06.2012 10:47:26
fcs
Hallo Ximena,
Word tickt hier zum Teil anders als Excel.
Nachfolgend ein Beispiel-Code für einen Commandbutton im Worddokument. Das Userform hat nur die 2 Labels, keinen weiteren Code.
Es wird ungebunden geöffnet und "schwebt" dann frei über der Wordoberfläche. Anders ist das automatische Schliessen nicht zu realisieren. Leider reagiert Word etwas "allergisch", wenn man dann die Anwendung wechselt. Die Userform-Anzeige wird dann nicht mehr aktualisiert.
Gruß
Franz
'Erstellt unter Word 2010
'Makros unter "ThisDocument"
Private Sub CommandButton1_Click()
Dim datTime As Date, iCount As Integer
On Error GoTo weiter 'Falls Userform vorzeitig geschlossen wird
UserForm1.Show False
iCount = 10
datTime = Now
With UserForm1
Do
.Label2.Caption = Format(iCount, "0") & " Sekunden"
.Repaint
Do
Loop Until Now - datTime >= 0.95 * TimeSerial(0, 0, 1)
datTime = Now
iCount = iCount - 1
Loop Until iCount 

Anzeige
AW: Countdown oder Timer
18.06.2012 13:23:04
Ximena
Hallo Franz
Danke für deine Hilfe! Es funktioniert fast :) hihi
Es zählt schön rückwärts, aber es kommt jedes Mal, wenn das Userform verschwindet die MsgBox "Makro1 läuft". Also gibt es jedes Mal einen Fehler?!
Und wie kann ich aus einem Modul dieses UserForm aufrufen, ohne dass ich eine fehlermeldung krieg?
Im sinne von

UserForm3.Show
und dann im UserForm3 Code unter UserForm_Initialize() deinen Code. Das gibt fehlermeldung...
Liebe Grüsse
Ximena
AW: Countdown oder Timer
18.06.2012 15:12:15
fcs
Hallo Ximena,
die Initialisierungsprozedur eines Userforms wird ausgeführt, bevor das Userform angezeigt wird.
Deshalb bringt es nichts zeitgesteuerte Änderungen die die Inhalte von Steuerelemente ändern sollen in dieser Prozedur unterzubringen. Die gesamte Zeitsteuerung der Countdown-Anzeige muss außerhalb des Userforms erfolgen.
Deshalb wird das Userform mit dem Parameter False angezeigt. Dadurch ist das Userform ungebunden und die aufrufende Prozedur läuft weiter - hier dann mit der Verzögerung von 10 Sekunden durch die Do-Loop-Schleifen.
Die Anzeige "Makro1 läuft" ist kein Fehler. Das hatte ich zum Testen eingebaut. Nachdem der Counter auf 0 ist und dem Schliessen des Userforms wird mit
Call Makro_1
das Makro "Makro_1" gestarte, das die MsgBox anzeigt.
Nachfolgend der Code, wie er in ein allgemeines Modul integriert werden könnte.
Gruß
Franz
'Code in einem allgemeinen Modul
Sub aaTest()
'Hier Code vor Anzeige des Userforms
Call prcCountdown
'hier Code nachdem Countdown runtergezählt hat
MsgBox "Countdown abgelaufen" 'Testzeile
End Sub
Public Function prcCountdown(Optional iCount As Integer = 10)
'anzeige von Userform mit Sekunden-Countdown
Dim datTime As Date
On Error GoTo Fehler
UserForm3.Show False
datTime = Now
With UserForm3
Do
.Label2.Caption = Format(iCount, "0") & " Sekunden"
.Repaint
Do
Loop Until Now - datTime >= 0.95 * TimeSerial(0, 0, 1)
datTime = Now
iCount = iCount - 1
Loop Until iCount 

Anzeige
AW: Countdown oder Timer
18.06.2012 15:16:18
Ximena
Hallo Franz!
Achso :D okay na dann. Was jetzt aber noch das Problem ist: Ab 5 Sekunden bleibt das Bild stehen und dann kommt gleich "Download abgelaufen", die letzten 5 Sekunden zählt er nicht mehr runter...
Weisst du dafür auch eine Erklärung?
Können die beiden Subs im gleichen Modul sein?!
Ganz liebe Grüsse und vielen Dank
Ximena
AW: Countdown oder Timer
18.06.2012 16:12:29
fcs
Hallo Ximena,
bei mir in einer ansonsten leeren Word 2010-Datei läuft der Countdown bis 0 runter.
Word ist aber ein richtiges Sensibelchen. Sobald man irgenwo mit der Maus außerhalb des Userforms klickt läuft meistens der Countdown ohne Aktualisierung der Anzeige weiter.
Können die beiden Subs im gleichen Modul sein?!
Ja kein Problem - bei mir sind beide Prozeduren im gleichen Allgemeinen Modul. Die Hauptprozedur starte ich mit einem Button.
Gruß
Franz
Anzeige
Tausen Dank!
18.06.2012 16:15:18
Ximena
Hallo Franz
Also ich habe nichts geklickt, währenddem die Makro gelaufen ist... Aber ich werde halt noch ein wenig ausprobieren, woran es liegen könnte...
Viele Dank für deine Hilfe! Immerhin zählt er jetzt bis 5 :P hihi
Ganz liebe Grüsse
Ximena
AW: Countdown oder Timer
18.06.2012 12:48:05
guentherh
Hallo Ximena,
Beispiel: Makro 1 startet 15 sekunden, nachdem Macro1starten aufgerufen wurde
sub Macro1starten
Application.OnTime When:=Now + TimeValue("00:00:15"), _
Name:="Project1.Module1.Macro1"
endsub
Gruß,
Günther

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige