Ich möchte eine MsgBox nur 5 Sekunden anzeigen - danach soll sie automatisch schließen!
Hat jemand ein Beispiel dazu?
Vielen Dank im voraus.
MfG
Ludwig
' Copyright Anzeige, Code von Silvan und DieterB aus dem Phorum-excelhost
Dim WsShell ' Variable für Copyright
Set WsShell = CreateObject("WScript.Shell")
LoI = WsShell.Popup("Diese Dateiverwaltung wurde entwickelt von Hajo Ziplies " _
& "und Karin Mohnhaupt." & vbCrLf & vbCrLf & "Die Arbeitsmappe ist wegen " _
& "der besonderen Programmierung der Symboleiste" & vbCrLf _
& "nur ab Version 2007 einsetzbar." & vbCrLf & vbCrLf & vbCrLf _
& Chr(169) & " 2007", 3, "Copyright-Hinweis")
Um eine MsgBox in Excel VBA automatisch nach 5 Sekunden zu schließen, kannst du den folgenden VBA-Code verwenden. Dieser Code nutzt das WScript.Shell-Objekt, um eine Popup-Nachricht zu erstellen.
Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.
Füge ein neues Modul hinzu, indem du im Menü "Einfügen" auf "Modul" klickst.
Kopiere den folgenden Code in das Modul:
Sub ShowMessageBox()
Dim WsShell As Object
Set WsShell = CreateObject("WScript.Shell")
Dim LoI As Long
LoI = WsShell.Popup("Diese Dateiverwaltung wurde entwickelt von Hajo Ziplies und Karin Mohnhaupt.", 5, "Copyright-Hinweis")
End Sub
Schließe den VBA-Editor und führe das Makro ShowMessageBox aus.
Die MsgBox erscheint nun für 5 Sekunden und schließt sich automatisch.
Fehler: "Variable nicht definiert"
Dim für jede Variable verwendest, wie im Beispiel gezeigt.Fehler: MsgBox schließt sich nicht
Popup-Methode angegeben hast. Der zweite Parameter steht für die Zeit in Sekunden.Falls du eine andere Methode bevorzugst, um eine Nachricht für eine bestimmte Zeit anzuzeigen, könntest du auch eine UserForm verwenden, die nach einer bestimmten Zeit geschlossen wird. Hier ist ein einfacher Ansatz:
Erstelle eine UserForm mit dem Namen frmMessage.
Füge ein Label hinzu, um den Text anzuzeigen.
Verwende den folgenden Code in der UserForm:
Private Sub UserForm_Activate()
Application.Wait Now + TimeValue("00:00:05")
Unload Me
End Sub
Um die UserForm anzuzeigen, kannst du diesen Code verwenden:
Sub ShowUserForm()
frmMessage.Show
End Sub
Hier ist ein Beispiel, das zeigt, wie du den Popup-Dialog zur Anzeige von Informationen verwenden kannst:
Sub InfoMessage()
Dim WsShell As Object
Set WsShell = CreateObject("WScript.Shell")
WsShell.Popup "Achtung! Die Verarbeitung wird in 5 Sekunden fortgesetzt.", 5, "Warnung"
End Sub
Du kannst die Nachricht entsprechend anpassen, um relevante Informationen für deine Nutzer bereitzustellen.
vbCrLf-Konstante, um Zeilenumbrüche in deinen MsgBox-Nachrichten zu integrieren.vbInformation, vbCritical oder vbExclamation, um unterschiedliche Icons in der MsgBox anzuzeigen.1. Frage
Kann ich die Zeit für die MsgBox ändern?
Ja, der zweite Parameter in der Popup-Methode bestimmt die Zeit in Sekunden. Du kannst ihn nach Bedarf anpassen.
2. Frage
Funktioniert das auch in älteren Excel-Versionen?
Der Code ist ab Excel 2007 funktionsfähig, da das WScript.Shell-Objekt erst ab dieser Version unterstützt wird.