Ich verwende die MsgBox VbYesNoCancel und möchte diese auf eine vierte Schaltfläche, mit Retry, ergänzen. Ist das möglich und wenn ja wie?
Gregor
0 vbOKOnly
1 vbOKCancel
2 vbAbortRetryIgnore
3 vbYesNoCancel
4 vbYesNo
5 vbRetryCancel
16 vbCritical
32 vbQuestion
48 vbExclamation
64 vbInformation
0 vbDefaultButton1
256 vbDefaultButton2
512 vbDefaultButton3
768 vbDefaultButton4
0 vbApplicationModal
4096 vbSystemModal
16384 vbMsgBoxHelpButton
65536 VbMsgBoxSetForeground
524288 vbMsgBoxRight
1048576 vbMsgBoxRtlReading
das heißt, die einzige Möglichkeit, in der MsgBox einen 4. Button zu erzeugen, ist die Dazunahme des Help-Buttons,
MsgBox "Hallo", vbYesNoCancel + vbMsgBoxHelpButton
da sich die Texte der Buttons in der MsgBox nicht ändern lassen, bleibt wohl nur der Weg über eine eigene Userform.
Gruß, Daniel
Öffne den VBA-Editor in Excel (Alt + F11).
Füge ein neues Modul hinzu (Rechtsklick auf "VBAProject" > Einfügen > Modul).
Erstelle eine MsgBox mit den gewünschten Optionen. Um eine MsgBox mit vbYesNoCancel
und einem vierten Button zu erstellen, kannst du den Help-Button hinzufügen, da dies die einzige Möglichkeit ist, einen vierten Button zu integrieren. Der Code lautet:
MsgBox "Hallo", vbYesNoCancel + vbMsgBoxHelpButton
Um die Buttons selbst zu beschriften, müsstest du eine eigene UserForm erstellen, da die Standard-MsgBox in VBA keine benutzerdefinierten Button-Beschriftungen erlaubt.
Fehler: Nur ein Button erscheint
Wenn du nur den „OK“-Button siehst, überprüfe, ob du die korrekten Werte für die Buttons kombiniert hast. Beispiel: MsgBox "Nachricht", vbYesNoCancel
.
Fehler: Vier Buttons werden nicht angezeigt
Die Excel MsgBox unterstützt maximal drei Buttons. Um eine vierte Schaltfläche hinzuzufügen, musst du eine UserForm verwenden.
Wenn du eine MsgBox mit vier Schaltflächen oder benutzerdefinierten Beschriftungen benötigst, ist die Erstellung einer UserForm die effektivste Methode. Hier ist eine kurze Anleitung:
Füge den notwendigen Code hinzu, um die UserForm anzuzeigen:
UserForm1.Show
Hier sind einige Beispiele, wie du die MsgBox oder die UserForm verwenden kannst:
MsgBox mit vbyesnocancel:
Dim Antwort As VbMsgBoxResult
Antwort = MsgBox("Möchten Sie fortfahren?", vbYesNoCancel)
If Antwort = vbYes Then
' Code für Yes
ElseIf Antwort = vbNo Then
' Code für No
End If
UserForm mit benutzerdefinierten Buttons:
Verwende vbCritical
für Warnungen: Wenn du eine kritische Meldung anzeigen möchtest, kombiniere die MsgBox mit vbCritical
.
MsgBox "Achtung! Fehler aufgetreten.", vbCritical + vbYesNoCancel
Nutze Application.InputBox
für Eingaben: Wenn du eine Benutzereingabe benötigst, ist InputBox
eine gute Alternative zur MsgBox.
1. Kann ich die Button-Beschriftungen der MsgBox ändern?
Nein, die Beschriftungen der Buttons in einer MsgBox sind festgelegt und können nicht angepasst werden. Du musst eine UserForm verwenden, um benutzerdefinierte Beschriftungen zu verwenden.
2. Wie viele Buttons kann ich in einer MsgBox haben?
Die Standard-MsgBox unterstützt maximal 3 Buttons. Für mehr Buttons solltest du eine UserForm verwenden.
Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden
Suche nach den besten AntwortenEntdecke unsere meistgeklickten Beiträge in der Google Suche
Top 100 Threads jetzt ansehen