Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

MsgBox mit Countdown schließen

Forumthread: MsgBox mit Countdown schließen

MsgBox mit Countdown schließen
Tim
Hallo an alle,
ich habe mal wieder eine Frage an die Experten:

1) Ich möchte gerne eine MessageBox mit einem mehrzeiligen Text anzeigen.
2) Die MessageBox soll zudem einen Countdown enthalten, d.h. die Sekunden im Text sollen rückwärts bis Null herunter zählen.
3) Nach Ablauf des Countdowns soll sich die MessageBox zusammen mit der aktiven Arbeitsmappe automatisch schließen.
Bislang habe ich folgenden Code, weiss aber nicht, wie ich hier den Countdown einbauen könnte - kann mir jemand von Euch weiterhelfen ?
Sub OutdatedVersion_Msg()
Const bytZeit As Byte = 15 'time limit for automatic closure
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Hello " & Worksheets(2).Range("I15") & " !" & Chr(10) & " " & Chr(10) _
_
& _
"TEXT ZEILE1" & Chr(10) & _
"TEXT ZEILE2" & Chr(10) & _
"For security reasons this file and message will close automatically" & Chr(10) & _
"in  " & bytZeit & "  seconds." & Chr(10) & _
"" & Chr(10) & _
"TEXT ZEILE5" & Space(10), bytZeit, "Outdated Version", vbCritical)
Set objWSH = Nothing
ActiveWorkbook.Close False
End Sub

VG und vielen Dank Euch im Voraus für jeden Tipp,
Tim

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: MsgBox mit Countdown schließen
15.09.2012 13:41:50
Hajo_Zi
Hallo Tim,
in einer MsgBox bekommst Du das nicht hin. bzw. Du blendest jede Sekunde eine neue ein und die alte nach 1 sekunde aus. Benutze doch eine UserForm.

AW: MsgBox mit Countdown schließen
15.09.2012 14:38:20
Tim
Hallo Hajo,
vielen Dank - und wie löse ich es mit einer UserForm, ohne dass ich eine extra TextBox für jede Sekunde erstellen muss ?
VG,
Tim

Anzeige
AW: MsgBox mit Countdown schließen
15.09.2012 14:42:03
Hajo_Zi
Hallo Tim,
warum mehrere Textboxen. Ich würde ja ein Label benutzen da Du nichts eingeben willst. Benutze OnTime.
http://hajo-excel.de/chCounter3/getfile.php?id=178
Gruß Hajo

Anzeige
AW: MsgBox mit Countdown schließen
15.09.2012 17:58:17
Tim
Hallo Hajo,
vielen Dank dafür - damit komme ich weiter !
VG und ein schönes Wochenende,
Tim
;
Anzeige
Anzeige

Infobox / Tutorial

MsgBox mit Countdown in Excel erstellen


Schritt-für-Schritt-Anleitung

Um eine MsgBox mit einem Countdown in Excel zu erstellen, kannst Du eine UserForm verwenden. Hier sind die Schritte, um einen VBA Countdown Timer zu implementieren:

  1. UserForm erstellen:

    • Öffne den VBA-Editor (Alt + F11).
    • Klicke auf "Einfügen" und wähle "UserForm".
    • Füge ein Label hinzu, um den Countdown anzuzeigen.
  2. Code für den Countdown einfügen:

    • Klicke mit der rechten Maustaste auf die UserForm und wähle "Code anzeigen".
    • Füge den folgenden Code ein:
    Dim TimerTime As Integer
    
    Private Sub UserForm_Initialize()
       TimerTime = 15 ' Zeit in Sekunden
       Me.Label1.Caption = "Die Nachricht schließt in " & TimerTime & " Sekunden."
       Call Countdown
    End Sub
    
    Private Sub Countdown()
       If TimerTime > 0 Then
           TimerTime = TimerTime - 1
           Me.Label1.Caption = "Die Nachricht schließt in " & TimerTime & " Sekunden."
           Application.OnTime Now + TimeValue("00:00:01"), "Countdown"
       Else
           Unload Me
       End If
    End Sub
  3. UserForm anzeigen:

    • Um die UserForm anzuzeigen, nutze den folgenden Code in einem Modul:
    Sub ShowCountdown()
       UserForm1.Show
    End Sub
  4. Makro ausführen:

    • Führe das Makro ShowCountdown aus, um die UserForm mit dem Countdown anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: UserForm wird nicht angezeigt.

    • Lösung: Stelle sicher, dass das Makro korrekt ausgeführt wird und keine Fehler im Code sind.
  • Fehler: Countdown funktioniert nicht.

    • Lösung: Überprüfe, ob der Application.OnTime Befehl korrekt eingerichtet ist. Achte darauf, dass die Zeitintervalle stimmen.

Alternative Methoden

Anstelle einer UserForm kannst Du auch eine einfache MsgBox verwenden, jedoch wird die Umsetzung eines echten Countdowns komplizierter. Der Vorteil der UserForm ist die bessere Kontrolle über das Layout und die Möglichkeit, dynamisch mit dem Countdown zu arbeiten.


Praktische Beispiele

Hier ist ein Beispiel für einen Excel Countdown, der eine UserForm verwendet:

Sub ShowCountdown()
    UserForm1.Show
End Sub

In der UserForm wird der Countdown in einem Label angezeigt, sodass Du den Fortschritt in Echtzeit sehen kannst.


Tipps für Profis

  • Nutze die OnTime-Funktion, um wiederkehrende Aktionen zu planen, was Dir ermöglicht, andere Prozesse in Excel während des Countdowns durchzuführen.
  • Experimentiere mit verschiedenen Designs für die UserForm, um die Benutzererfahrung zu verbessern.

FAQ: Häufige Fragen

1. Kann ich den Countdown anpassen?
Ja, Du kannst die Variable TimerTime im Code ändern, um die Dauer des Countdowns anzupassen.

2. Funktioniert dies in allen Excel-Versionen?
Ja, dieser Code sollte in den meisten Excel-Versionen funktionieren, die VBA unterstützen.

3. Wie kann ich den Countdown abbrechen?
Du kannst einen Button hinzufügen, um die UserForm zu schließen und den Countdown zu stoppen.

4. Ist es möglich, einen Weihnachts-Countdown mit Excel zu erstellen?
Ja, Du kannst den gleichen Ansatz verwenden und den Countdown auf einen bestimmten Feiertag anpassen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige