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

Forumthread: MsgBox mit 4 Schaltflächen

MsgBox mit 4 Schaltflächen
21.12.2007 08:27:14
Gregor
Hallo
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

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: MsgBox mit 4 Schaltflächen
21.12.2007 08:34:36
Hajo_Zi
Hallo Gregor,
ungetestet
veruche es mal schreibe für VbYesNoCancel nur 9

AW: MsgBox mit 4 Schaltflächen
21.12.2007 08:42:05
Gregor
Hallo Hajo
Meinst du das
oK = MsgBox(prompt:="Ergebnis" _
& vbNewLine & vbNewLine & "GESUCHT:" & vbTab & vbTab & "Wert1" _
& vbNewLine & "GEFUNDEN:" & vbTab & "Wert2" _
& vbNewLine & vbNewLine & "Angaben überhnehmen?", _
Title:=" Bestätigung", _
Buttons:=9)
Damit erhalte ich bloss den Button ok
Gregor

Anzeige
AW: MsgBox mit 4 Schaltflächen
21.12.2007 08:47:00
Hajo_Zi
Hallo Geregor,
laut Hilfe sollte es gehen. Die Summe aus 5 und 4. Aber mir scheint da weicht die Wirklichkeit von der Hilfe ab.
Gruß Hajo

AW: MsgBox mit 4 Schaltflächen
21.12.2007 12:41:29
Daniel
Hi
je nachdem, wie man die Hilfe interpretiert.
es gibt Optionen, die kann man durch zusammenaddieren der Werte kombinieren, und es gibt Optionen, da klappt das nicht, weil immer genau eine Option der Gruppe gültig sein kann
das mit dem Zusammenaddieren von Optionen kann nur funktionieren, wenn dadurch immer eindeutige Zustände entstehen.
das ist aber nur gegeben, wenn die einzelnen Werte der Optionen immer einen genügend grossen Abstand haben, dh mindestens der Reihe 2^x zugeordnet ist (dh. jede Option besetzt ein eigenes BIT, das ein- und augeschaltet werden kann)
Wenn man sich die Werte der Optionen der MsgBox so anschaut, wird man feststellen, daß einige Werte dieser Regel entsprechen, und einige nicht, weil die Zahlenabstände zu klein sind und sie die gleiche Bit-Gruppe besetzen.
bei der Anzahl der Buttons sind die Werte der möglichen Optionen 1,2,3,4,5, dh man kann sich immer nur für einen entscheiden, aber nicht mehrere kombinieren (5 könnte sonst ja auch 2 und 3 seien)
wenn man sich die Werte der Hilfe so anschaut, wird man schnell feststellen, was kombinierbar ist, und aus welchen Gruppen immer nur ein Wert gewählt werden kann:

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

Anzeige
AW: MsgBox mit 4 Schaltflächen
21.12.2007 13:02:00
Hajo_Zi
Hallo Daniel,
Danke für die Information.
Gruß Hajo

AW: MsgBox mit 4 Schaltflächen
21.12.2007 15:28:41
Peter
Hallo Gregor,
eine Alternative - ein UserForm mit den gewünschten 4 Buttons.
https://www.herber.de/bbs/user/48589.xls
Gruß Peter

Anzeige
Danke
21.12.2007 21:05:54
Gregor
Peter und alle anderen
Vielen Dank für die Unterstützung, mit der UserForm komme ich zum gewünschten Ergebnis.
Ich wünsche allen erholsame Festtage.
Gregor
;
Anzeige
Anzeige

Infobox / Tutorial

MsgBox mit 4 Schaltflächen in Excel VBA


Schritt-für-Schritt-Anleitung

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

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

  3. 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
  4. Um die Buttons selbst zu beschriften, müsstest du eine eigene UserForm erstellen, da die Standard-MsgBox in VBA keine benutzerdefinierten Button-Beschriftungen erlaubt.


Häufige Fehler und Lösungen

  • 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.


Alternative Methoden

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:

  1. Füge eine UserForm hinzu (Rechtsklick auf "VBAProject" > Einfügen > UserForm).
  2. Füge vier Schaltflächen hinzu und beschrifte sie nach deinen Wünschen.
  3. Füge den notwendigen Code hinzu, um die UserForm anzuzeigen:

    UserForm1.Show

Praktische Beispiele

Hier sind einige Beispiele, wie du die MsgBox oder die UserForm verwenden kannst:

  1. 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
  2. UserForm mit benutzerdefinierten Buttons:

    • Erstelle eine UserForm mit den Buttons „Ja“, „Nein“, „Abbrechen“ und „Wiederholen“.
    • Im Code der UserForm kannst du die Aktionen für jeden Button definieren.

Tipps für Profis

  • 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.


FAQ: Häufige Fragen

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.

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