Live-Forum - Die aktuellen Beiträge
Datum
Titel
25.10.2025 08:21:40
24.10.2025 18:10:41
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeitschleife in VBA!!

Forumthread: Zeitschleife in VBA!!

Zeitschleife in VBA!!
11.03.2005 11:03:30
Grevi
Hey Excel-Freunde!
Ich habe mal ne Frage! Kann ich eine MsgBox mit einem Zeitbefehl versehen?
Das heißt:
Ich mache eine MsgBox in der z.B. steht
MsgBox "Druckbefehl starten"
Nun möchte ich aber nicht immer auf "Ok" klicken,weil es dann zuviele Klicks wären, sondern ihc möchte, dass der Button sich nach z.B. 5 s selber anklickt!
Hat da irgend jemand nen vorschlag?
MfG Grevi
Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zeitschleife in VBA!!
11.03.2005 11:06:04
Grevi
Ich bins nochmal!
Gibt es auch irgendwie nen Befehl den ich in VBA einbauen kann, das der an einer bestimmten Stelle, wo ich den Befehl setze dann solange wartet bis er weiter macht, wie ich dier Zeit eingestellt habe!
Irgendnen Befehl mit WAIT oder sowas! KA
MfG Grevi
AW: Application.Wait
11.03.2005 11:53:02
Martin
Hallo Grevi,
aus der VBA-Hilfe:
***********************************
Wait-Methode
Siehe auch Betrifft Beispiele Zusatzinfo
Hält das aktuell ausgeführte Makro bis zu einem angegebenen Zeitpunkt an. Gibt zum angegebenen Zeitpunkt True zurück.
Wichtig: Die Wait-Methode unterbricht alle Aktivitäten von Microsoft Excel und verhindert unter Umständen auch das Ausführen sonstiger Vorgänge auf dem Computer. Hintergrundprozesse, wie Drucken und Neuberechnung, werden jedoch fortgesetzt.
Ausdruck.Wait(Time)
Ausdruck Erforderlich. Ein Ausdruck, der ein Application-Objekt zurückgibt.
Time Variant erforderlich. Der Zeitpunkt, zu dem das Makro fortgesetzt werden soll (im Datumsformat von Microsoft Excel).
Beispiel
In diesem Beispiel wird ein aktuell ausgeführtes Makro bis 18.23 Uhr desselben Tages unterbrochen.
Application.Wait "18:23:00"
In diesem Beispiel wird ein aktuell ausgeführtes Makro für ungefähr 10 Sekunden unterbrochen.
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 10
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
In diesem Beispiel wird eine Meldung angezeigt, dass 10 Sekunden abgelaufen sind.
If Application.Wait(Now + TimeValue("0:00:10")) Then
MsgBox "Time expired"
End If
******************************
Das kann man auch selbst rausfinden.
Gruß
Martin Beck
Anzeige
AW: Zeitschleife in VBA!!
11.03.2005 11:19:59
Hajo_Zi
Hallo Grevi,
Option Explicit

Sub MsgBox3Sekunden()
'   Blendet eine Msgbox nach 3 Sekunden automatisch wieder aus
' von Franz W Herber.de
' Verweis auf Microsoft Scripting Runtime
Dim WsShell
Dim intText As Integer
Set WsShell = CreateObject("WScript.Shell")
intText = WsShell.Popup("Diese Meldung wird nach 3 Sekunden geschlossen.", 3, "Automatisch...")
' Die 3 in der letzten Zeile gibt die Dauer der Öffnung an.
End Sub


Sub MsgZeit()
'   Blendet eine Msgbox nach 3 Sekunden automatisch wieder aus
'   von K.Rola
'   kein Verweis notwendig
Const bytZeit As Byte = 3
Dim objWSH As Object, intMSG As Integer
Set objWSH = CreateObject("WScript.Shell")
intMSG = objWSH.Popup("Ich bin in " & bytZeit & " Sekunden verschwunden!" & Space(10), bytZeit, "gebe bekannt...")
Set objWSH = Nothing
End Sub

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


Anzeige
AW: Zeitschleife in VBA!!
11.03.2005 11:24:21
Grevi
HI!!!
Danke für deine Antwort! Kann ich nicht auch einfach schreiben:
MsgBox5Sekunden
oder muss das Sub MsgBox3Sekunden() so geschrieben werden!
Gruß Grevi
AW: Zeitschleife in VBA!!
11.03.2005 11:30:57
Hajo_Zi
Hallo Grevi,
bei VBA gut muß ich die Frage doch nicht beantworten?
Namen sind doch Schall und Rauch.
Gruß Hajo
Anzeige
AW: Zeitschleife in VBA!!
11.03.2005 11:33:02
Grevi
Oh Sorry! Habe ich gar nicht gesehen das ich das angeklickt habe! Wollte eigentlich wie immer Excel gut / VBA nein!
Tut mir leid! Wäre trotzdem nett wenn du mir meine Frage beantworten könntest!
Grevi
AW: Zeitschleife in VBA!!
11.03.2005 11:35:12
Hajo_Zi
Hallo
ich war eigentlich der Auffasung das ich das Beantwortet habe.
Du Kannst es nennen wie Du willst z.B. "Der_Mond_ist_rot" oder wie auch immer.
Gruß Hajo
Anzeige
AW: Zeitschleife in VBA!!
11.03.2005 11:39:34
Grevi
Hallo noch mal!
Ich glaube du hast eine meiner Antworten nicht gesehen! Ich fragte auch noch, ob ich das mit:
Sub ....() machen muss, dann kann ich die variante von dir nehmen! Ich will das aber in einen shon vorhandenen Code einbringen! Also ist meine Frage, ob ich auch einfach:
MsgBox "Befehl ausführen" schreiben kann und das die MsgBx sich dann trotzdem nach einer Zeit schließt!!!
Grevi
Anzeige
AW: Zeitschleife in VBA!!
11.03.2005 11:42:58
Hajo_Zi
Hallo Grevi,
alle Zeilen im Code sind für einen Zweck da. Di wurden nicht dahin geschrieben weil jemand Zeit hatte und noch was machen wollte. Falls Du das in Deine Sub einbauen willst lasse von dem Code für den Du dich enschieden hast die erste und letzte Zeile fort.
Gruß Hajo
AW: Zeitschleife in VBA!!
11.03.2005 11:45:39
Grevi
Achso! Jo danke jetz läuft das auch!
Danke für deinen Tipp
MfG Grevi
Anzeige
;
Anzeige

Infobox / Tutorial

Zeitschleife in VBA: Automatisierte MsgBox


Schritt-für-Schritt-Anleitung

Um eine MsgBox in VBA zu erstellen, die sich nach einer bestimmten Zeit automatisch schließt, kannst Du die WScript.Shell-Klasse verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor in Excel (Alt + F11).

  2. Füge ein neues Modul hinzu (Rechtsklick auf "VBA-Projekt" > Einfügen > Modul).

  3. Kopiere den folgenden Code in das Modul:

    Sub MsgBoxAutomatischSchliessen()
       Dim WsShell As Object
       Set WsShell = CreateObject("WScript.Shell")
       WsShell.Popup "Diese Meldung wird nach 5 Sekunden geschlossen.", 5, "Automatische MsgBox"
       Set WsShell = Nothing
    End Sub
  4. Führe das Makro aus, um die MsgBox anzuzeigen.

In diesem Beispiel wird die MsgBox 5 Sekunden lang angezeigt, bevor sie sich schließt. Du kannst die Zeitdauer anpassen, indem Du den Wert in der Popup-Methode änderst.


Häufige Fehler und Lösungen

  • Fehler: MsgBox bleibt offen und schließt sich nicht.

    • Lösung: Stelle sicher, dass Du die richtige Zeit in der Popup-Methode angegeben hast und dass der Code korrekt implementiert ist.
  • Fehler: VBA gibt eine Fehlermeldung aus.

    • Lösung: Überprüfe, ob Du die richtige Excel-Version verwendest, und dass die WScript.Shell-Klasse verfügbar ist.

Alternative Methoden

Eine andere Möglichkeit, eine Warteschleife in VBA zu erstellen, ist die Verwendung von Application.Wait. Hier ist ein Beispiel, wie Du dies umsetzen kannst:

Sub MsgBoxMitWarten()
    MsgBox "Druckbefehl starten"
    Application.Wait (Now + TimeValue("0:00:05")) ' 5 Sekunden warten
    MsgBox "5 Sekunden sind vergangen!"
End Sub

In diesem Beispiel wird eine MsgBox angezeigt und danach für 5 Sekunden gewartet, bevor eine weitere MsgBox erscheint.


Praktische Beispiele

Hier sind zwei praktische Beispiele, um eine MsgBox mit einer automatischen Schließzeit zu implementieren:

  1. Einfaches Popup:

    Sub EinfachesPopup()
       MsgBox "Diese Nachricht schließt nach 3 Sekunden.", vbInformation, "Info"
       Application.Wait (Now + TimeValue("0:00:03"))
    End Sub
  2. Benutzerdefinierte Nachricht:

    Sub BenutzerdefinierteNachricht()
       Dim Nachrich As String
       Nachrich = "Bitte auf die nächste Meldung achten!"
       MsgBox Nachrich, vbExclamation, "Wichtige Mitteilung"
       Application.Wait (Now + TimeValue("0:00:05"))
       MsgBox "Die Zeit ist abgelaufen!", vbCritical, "Zeit abgelaufen"
    End Sub

Tipps für Profis

  • Verwende Konstanten: Definiere Zeitkonstanten am Anfang Deines Codes, um die Lesbarkeit zu verbessern.

    Const Wartezeit As Integer = 5
  • Fehlerbehandlung: Implementiere Fehlerbehandlungsroutinen, um sicherzustellen, dass Dein Makro auch bei unerwarteten Fehlern stabil bleibt.

  • Testen: Teste Deinen Code in einer sicheren Umgebung, bevor Du ihn in produktiven Anwendungen einsetzt.


FAQ: Häufige Fragen

1. Kann ich die MsgBox ohne Sub verwenden? Ja, Du kannst die MsgBox auch direkt in einem Sub ohne weitere Definition verwenden. Achte jedoch darauf, dass Du die Struktur eines Makros beibehältst.

2. Was ist der Unterschied zwischen Application.Wait und WScript.Shell.Popup? Application.Wait pausiert das gesamte Excel und erlaubt keine anderen Aktivitäten, während WScript.Shell.Popup nur das Popup steuert, ohne Excel zu blockieren.

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