Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: MessageBox automatisch schließen

MessageBox automatisch schließen
01.06.2016 12:56:27
abc
Hi,
ich möchte, dass sich eine MessageBox nach einer bestimmten Anzahl an Sekunden selbstständig wieder schließt. Die MsgBox wird aufgerufen, wenn die letzte Zeile eines textdokuments leer ist.
Wenn ich meinen Code in Einzelschritten durchlaufe funktioniert dies auch. Sobald ich das Programm jedoch laufen lasse schließt sich das Meldungsfenster nicht mehr selbstständig sonder nur noch über den OK-Button.
Weiß jemand woran dies liegen könnte?
Mein Code sieht folgendermaßen aus:
Sub VerbundenUeber()
Dim Meldung As Object
Set Meldung = CreateObject("WScript.Shell")
Verbindungsart = USB
Call StatusVectorBox
Call UpdateMeldungen
If letzteZeileWert = Empty Then   'letzteZeile = leer
Meldung.Popup "verbunden über USB", 3, "Verbunden über ...", 64
Set Meldung = Nothing
Else                      'wenn nicht, Verbindungsart IP1 überprüfen
Verbindungsart = IP1
Call StatusVectorBox
Call UpdateMeldungen
If letzteZeileWert = Empty Then
Meldung.Popup "verbunden über IP: " & IP1, 3, "Verbunden über ...", 64
Set Meldung = Nothing
End If
End If
End Sub

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: MessageBox automatisch schließen
01.06.2016 14:01:49
UweD
Hallo
das kannst du einbauen...

Sub MSGBOX_autom()
Dim WsShell, intText As Integer
Set WsShell = CreateObject("WScript.Shell")
intText = WsShell.Popup("Hinweis wird automatisch geschlossen!!!", 2, "Huhu ...", 2 + 48)
' Die 2 in der letzten Zeile gibt die Dauer der Öffnung an.
End Sub
Gruß UweD

Anzeige
AW: MessageBox automatisch schließen
01.06.2016 15:52:04
abc
Hallo UweD,
vielen Dank schon mal für die Antwort.
Allerdings schließt sich auch mit deinem Code das Fenster nicht selbstständig.

AW: MessageBox automatisch schließen
01.06.2016 16:08:55
Mullit
Hallo,
das funktioniert ab xl2010 nicht immer zuverlässig, am einfachsten Du nimmst eine Userform und schließt die mit der .OnTime-Methode...
Gruß, Mullit

Anzeige
doch..
01.06.2016 16:09:48
UweD
intText = WsShell.Popup("Hinweis wird automatisch geschlossen!!!", 2, "Huhu ...", 2 + 48)
Die erste 2 in der letzten Zeile gibt die Dauer der Öffnung an.

ok. Ich hab es mit Office 13 getestet
01.06.2016 16:11:33
UweD

AW: MessageBox automatisch schließen
01.06.2016 16:33:04
Mullit
Hallo,
...fiel mir wieder ein, Du könntest nochmal das hier versuchen, ggf etwas tiefer einbauen:
Sub VerbundenUeber()
Dim Meldung As Object
 Set Meldung = CreateObject("WScript.Shell")
   DoEvents
   Verbindungsart = USB
   Call StatusVectorBox
   Call UpdateMeldungen
   If letzteZeileWert = Empty Then   'letzteZeile = leer
      Meldung.Popup "verbunden über USB", 3, "Verbunden über ...", 64
      Set Meldung = Nothing
   Else                      'wenn nicht, Verbindungsart IP1 überprüfen
      Verbindungsart = IP1
      Call StatusVectorBox
      Call UpdateMeldungen
      If letzteZeileWert = Empty Then
         Meldung.Popup "verbunden über IP: " & IP1, 3, "Verbunden über ...", 64
         Set Meldung = Nothing
End If
End If
End Sub

Gruß, Mullit

Anzeige
AW: MessageBox automatisch schließen
01.06.2016 16:45:27
abc
Hallo Mullit,
ich bin begeistert. Sobald ich "DoEvents" mit einfüge funktioniert es.
vielen Dank
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

MessageBox in Excel VBA automatisch schließen


Schritt-für-Schritt-Anleitung

Um eine MessageBox in Excel VBA automatisch zu schließen, kannst Du den folgenden VBA-Code verwenden. Dieser Code nutzt die CreateObject("WScript.Shell").Popup Methode, um eine MessageBox für eine bestimmte Zeit anzuzeigen.

Sub MSGBOX_autom()
    Dim WsShell As Object
    Set WsShell = CreateObject("WScript.Shell")
    WsShell.Popup "Hinweis wird automatisch geschlossen!!!", 2, "Huhu ...", 2 + 48
End Sub

In diesem Beispiel zeigt die MessageBox den Text "Hinweis wird automatisch geschlossen!!!" für 2 Sekunden an, bevor sie sich selbst schließt. Die 2 in der Popup-Methode gibt die Dauer in Sekunden an.


Häufige Fehler und Lösungen

  1. Die MessageBox schließt sich nicht.

    • Stelle sicher, dass Du die richtige Excel-Version verwendest. Ab Excel 2010 kann es sein, dass die automatische Schließung nicht immer zuverlässig funktioniert. Füge DoEvents in Deinen Code ein, um die Ausführung zu optimieren.
  2. Popup wird nicht angezeigt.

    • Überprüfe, ob das Popup von Deinem Betriebssystem blockiert wird. Manchmal können Sicherheitseinstellungen in Windows verhindern, dass Popups angezeigt werden.

Alternative Methoden

Falls die Methode mit WScript.Shell nicht funktioniert, kannst Du eine UserForm verwenden und diese mit der .OnTime-Methode schließen:

Sub ShowUserForm()
    UserForm1.Show
    Application.OnTime Now + TimeValue("00:00:02"), "CloseUserForm"
End Sub

Sub CloseUserForm()
    Unload UserForm1
End Sub

Diese Methode verwendet eine UserForm, die für 2 Sekunden angezeigt wird, bevor sie geschlossen wird.


Praktische Beispiele

Hier ist ein einfaches Beispiel, wie Du die automatische Schließung der MessageBox in einem größeren Kontext verwenden kannst:

Sub VerbundenUeber()
    Dim Meldung As Object
    Set Meldung = CreateObject("WScript.Shell")
    Dim letzteZeileWert As Variant
    ' Beispielwert für letzteZeileWert
    letzteZeileWert = Empty

    If letzteZeileWert = Empty Then   'letzteZeile = leer
        Meldung.Popup "verbunden über USB", 3, "Verbunden über ...", 64
    Else
        Meldung.Popup "verbunden über IP: " & "IP1", 3, "Verbunden über ...", 64
    End If
    Set Meldung = Nothing
End Sub

Dieses Beispiel zeigt, wie Du die MessageBox in Deinem Code verwenden kannst, um Statusmeldungen anzuzeigen.


Tipps für Profis

  • Nutze die DoEvents-Methode, um sicherzustellen, dass andere Ereignisse während des Popup angezeigt werden können. Dies kann dazu beitragen, dass die MessageBox ordnungsgemäß funktioniert.
  • Berücksichtige, dass die Darstellung der MessageBox von der Excel-Version abhängt. In älteren Versionen kann die Funktionalität eingeschränkt sein.
  • Experimentiere mit verschiedenen Zeitwerten in der Popup-Methode, um die optimale Dauer für Deine Anwendung zu finden.

FAQ: Häufige Fragen

1. Funktioniert das automatisierte Schließen der MessageBox in allen Excel-Versionen?
Nein, ab Excel 2010 kann die Funktionalität variieren. Es wird empfohlen, die UserForm-Methode zu verwenden, wenn Probleme auftreten.

2. Wie kann ich die Dauer der Anzeige einer MessageBox anpassen?
Ändere einfach den zweiten Parameter in der Popup-Methode auf die gewünschte Anzahl von Sekunden, z.B. WsShell.Popup "Text", 5 für 5 Sekunden.

3. Was kann ich tun, wenn die MessageBox nicht angezeigt wird?
Überprüfe die Sicherheitseinstellungen Deines Systems, da Popups manchmal blockiert werden.

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