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

Forumthread: MsgBox/Mldg-Button eigene Beschriftung

MsgBox/Mldg-Button eigene Beschriftung
08.02.2008 11:48:00
Benny
Gruß an das Forum!
Ich habe eine Bitte.
Ich möchte ein bescheidenes VBA-Makro erstellen und dem Button der MsgBox bzw. den 2 Button einer Meldung einen eigenen Text "verpassen".
Ist das möglich? Und wenn ja, wer kann mir weiterhelfen?
Vielen Dank schon jetzt dafür!
Gruß, Benny

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: MsgBox/Mldg-Button eigene Beschriftung
08.02.2008 11:52:00
Jens
Hallo Benny
Aus der Hilfe:
MsgBox-Funktion
Zeigt eine Meldung in einem Dialogfeld an und wartet darauf, daß der Benutzer auf eine Schaltfläche klickt. Es wird dann einen Wert vom Typ Integer zurückgegeben, der anzeigt, auf welche Schaltfläche der Benutzer geklickt hat.
Syntax
MsgBox(prompt[, buttons] [, title] [, helpfile, context])
Die Syntax der MsgBox-Funktion verwendet die folgenden benannten Argumente:
Teil Beschreibung
prompt Erforderlich. Ein Zeichenfolgenausdruck, der als Meldung im Dialogfeld erscheint. Die Maximallänge von prompt ist - je nach Breite der verwendeten Zeichen - etwa 1024 Zeichen. Wenn prompt aus mehreren Zeilen besteht, müssen Sie die Zeilen mit einem Wagenrücklaufzeichen (Chr(13)), einem Zeilenvorschubzeichen (Chr(10)) oder einer Kombination aus Wagenrücklaufzeichen und Zeilenvorschubzeichen (Chr(13) & Chr(10)) trennen.
buttons Optional. Ein numerischer Ausdruck, der der Summe der Werte entspricht, die Anzahl und Typ der anzuzeigenden Schaltflächen, die Art des zu verwendenden Symbols sowie die Standardschaltfläche und die Bindung des Dialogfeldes angeben. Wenn Sie buttons nicht angeben, ist der Standardwert 0.
title Optional. Ein Zeichenfolgenausdruck, der in der Titelleiste des Dialogfeldes angezeigt wird. Wenn Sie title nicht angeben, wird der Anwendungsname in der Titelleiste angezeigt.
helpfile Ein Zeichenfolgenausdruck, der die Hilfedatei mit der kontextbezogenen Hilfe für das Dialogfeld angibt. Wenn Sie helpfile angeben, müssen Sie auch context angeben.
context Optional. Ein numerischer Ausdruck mit der Hilfekontextkennung, die der Autor der Hilfe für das entsprechende Hilfethema gegeben hat. Wenn Sie context angeben, müssen Sie auch helpfile angeben.
Einstellungen
Das Argument buttons hat die folgenden Einstellungen:
Konstante Wert Beschreibung
vbOKOnly 0 Nur die Schaltfläche OK anzeigen.
VbOKCancel 1 Schaltflächen OK und Abbrechen anzeigen.
VbAbortRetryIgnore 2 Schaltflächen Abbruch, Wiederholen und Ignorieren anzeigen.
VbYesNoCancel 3 Schaltflächen Ja, Nein und Abbrechen anzeigen.
VbYesNo 4 Schaltflächen Ja und Nein anzeigen.
VbRetryCancel 5 Schaltflächen Wiederholen und Abbrechen anzeigen.
VbCritical 16 Meldung mit Stop-Symbol anzeigen.
VbQuestion 32 Meldung mit Fragezeichen-Symbol anzeigen.
VbExclamation 48 Meldung mit Ausrufezeichen-Symbol anzeigen.
VbInformation 64 Meldung mit Info-Symbol anzeigen.
VbDefaultButton1 0 Erste Schaltfläche ist Standardschaltfläche.
VbDefaultButton2 256 Zweite Schaltfläche ist Standardschaltfläche.
VbDefaultButton3 512 Dritte Schaltfläche ist Standardschaltfläche.
VbDefaultButton4 768 Vierte Schaltfläche ist Standardschaltfläche.
VbApplicationModal 0 An die Anwendung gebunden. Der Benutzer muß auf das Meldungsfeld reagieren, bevor er seine Arbeit mit der aktuellen Anwendung fortsetzen kann.
VbSystemModal 4096 An das System gebunden. Alle Anwendungen werden unterbrochen, bis der Benutzer auf das Meldungsfeld reagiert.
vbMsgBoxHelpButton 16384 Adds Help button to the message box
VbMsgBoxSetForeground 65536 Specifies the message box window as the foreground window
vbMsgBoxRight 524288 Text is right aligned
vbMsgBoxRtlReading 1048576 Specifies text should appear as right-to-left reading on Hebrew and Arabic systems
Die erste Gruppe von Werten (0 - 5) beschreibt die Anzahl und den Typ der im Dialogfeld angezeigten Schaltflächen. Die zweite Gruppe (16, 32, 48, 64) beschreibt die Symbolart. Die dritte Gruppe (0, 256, 512) legt die Standardschaltfläche fest. Die vierte Gruppe (0, 4096) legt fest, in welcher Form das Dialogfeld gebunden ist. Verwenden Sie beim Addieren der Zahlen zu einem Gesamtwert für das Argument buttons nur eine Zahl aus jeder Gruppe.
Anmerkung Diese Konstanten sind durch Visual Basic für Applikationen festgelegt. Daher können die Namen an einer beliebigen Stelle im Code anstelle der tatsächlichen Werte verwendet werden.
Rückgabewerte
Konstante Wert Beschreibung
vbOK 1 OK
vbCancel 2 Abbrechen
vbAbort 3 Abbruch
vbRetry 4 Wiederholen
vbIgnore 5 Ignorieren
vbYes 6 Ja
vbNo 7 Nein
Bemerkungen
Wenn sowohl helpfile als auch context angeben werden, kann der Benutzer F1 (Windows) oder HILFE (Macintosh) drücken, um das Hilfethema für context anzuzeigen. Einige Host-Anwendungen, zum Beispiel Microsoft Excel, fügen dem Dialogfeld automatisch die Schaltfläche Hilfe hinzu.
Wenn im Dialogfeld die Schaltfläche Abbrechen angezeigt wird, hat das Drücken von ESC dieselbe Wirkung wie das Klicken auf Abbrechen. Wird im Dialogfeld die Schaltfläche Hilfe angezeigt, wird für das Dialogfeld eine kontextbezogene Hilfe zur Verfügung gestellt. Ein Wert wird aber nur zurückgegeben, wenn auf eine der anderen Schaltflächen geklickt wird.
Anmerkung Wenn Sie außer dem ersten benannten Argument weitere Argumente angeben möchten, müssen Sie MsgBox in einem Ausdruck verwenden. Wenn Sie einige Argumente mit einer bestimmten Position nicht angeben möchten, müssen Sie dennoch das entsprechende Komma als Trennzeichen angeben.
Gruß aus dem Sauerland
Jens

Anzeige
AW: MsgBox/Mldg-Button eigene Beschriftung
08.02.2008 11:54:00
Benny
Hallo Jens,
danke Dir!
Grüsse, Benny

AW: MsgBox/Mldg-Button eigene Beschriftung
08.02.2008 12:08:00
InaB
Hallo Jens,
ich habe alles durchgelesen, komme aber noch nicht so richtig weiter.
Wie kann ich denn nun einem Button eine bestimmte Beschriftung geben?
Kannst Du mir ein Code-Beispiel geben? danke!
Gruß Benny

Anzeige
AW: MsgBox/Mldg-Button eigene Beschriftung
08.02.2008 12:43:00
Gerd
Hi,
eigene beschriftung ist nicht möglich, bau dir eine Msgbox mit Userform nach,
da hast du alle Möglichkeiten der Gestaltung.
mfg Gerd

Danke! (oT)
08.02.2008 13:01:00
Benny
-

Kleines Beispiel...
08.02.2008 14:00:06
Jens
Hi Benny
Nur mal ein kleines Beispiel...
https://www.herber.de/bbs/user/49743.xls
Gruß aus dem Sauerland
Jens
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Eigene Beschriftungen für MsgBox-Buttons in Excel VBA


Schritt-für-Schritt-Anleitung

Um eigene Beschriftungen für die Buttons einer MsgBox in Excel VBA zu verwenden, musst Du wissen, dass dies nicht direkt möglich ist. Die Standard-MsgBox bietet nur vordefinierte Schaltflächen wie OK, Abbrechen oder Ja/Nein an. Du kannst jedoch individuelle Buttons erstellen, indem Du eine UserForm verwendest. Hier ist, wie Du es machst:

  1. UserForm erstellen:

    • Öffne den VBA-Editor (ALT + F11).
    • Klicke mit der rechten Maustaste auf das Projekt, wähle "Einfügen" und dann "UserForm".
  2. Buttons hinzufügen:

    • Ziehe die Schaltflächen (CommandButton) aus der Toolbox auf die UserForm.
    • Benenne die Buttons nach Deinen Wünschen (z.B. "Ja", "Nein", "Abbrechen").
  3. Code für die UserForm:

    • Doppelklicke auf die Schaltflächen und füge den entsprechenden Code hinzu, um die gewünschte Aktion auszuführen. Zum Beispiel:

      Private Sub cmdJa_Click()
       MsgBox "Du hast Ja gewählt!"
       Unload Me
      End Sub
      
      Private Sub cmdNein_Click()
       MsgBox "Du hast Nein gewählt!"
       Unload Me
      End Sub
  4. UserForm anzeigen:

    • Rufe die UserForm in Deinem Hauptcode auf:
      Sub ShowCustomMsgBox()
       UserForm1.Show
      End Sub
  5. Testen:

    • Führe das Makro ShowCustomMsgBox aus, um die UserForm anzuzeigen.

Häufige Fehler und Lösungen

  • Fehler: UserForm wird nicht angezeigt
    Lösung: Stelle sicher, dass Du die UserForm korrekt aufrufst. Überprüfe auch, ob Du die Show-Methode verwendest.

  • Fehler: Button reagiert nicht
    Lösung: Überprüfe den Code der Schaltfläche und stelle sicher, dass die richtige Subroutine mit Private Sub deklariert ist.


Alternative Methoden

Wenn Du dennoch eine einfache MsgBox mit vordefinierten Schaltflächen verwenden möchtest, kannst Du das so tun:

Dim Antwort As Integer
Antwort = MsgBox("Möchtest Du fortfahren?", vbYesNo + vbQuestion, "Bestätigung")
If Antwort = vbYes Then
    MsgBox "Du hast fortgefahren!"
Else
    MsgBox "Vorgang abgebrochen."
End If

Diese Methode bietet Dir die Möglichkeit, zwischen Ja und Nein zu wählen, ohne eigene Buttons zu erstellen.


Praktische Beispiele

Hier sind einige Beispiele, wie Du die MsgBox in verschiedenen Situationen verwenden kannst:

  1. MsgBox mit OK und Abbrechen:

    Dim Antwort As Integer
    Antwort = MsgBox("Möchtest Du wirklich speichern?", vbOKCancel + vbCritical, "Speichern")
    If Antwort = vbOK Then
       ' Speichern-Logik hier
    End If
  2. MsgBox mit individuellen Buttons (über UserForm): In diesem Beispiel hast Du die Möglichkeit, Buttons mit eigens gewählten Beschriftungen zu erstellen, wie oben beschrieben.


Tipps für Profis

  • Nutze die vbMsgBoxHelpButton-Konstante, um einen Hilfe-Button in Deiner MsgBox hinzuzufügen.
  • Experimentiere mit verschiedenen Symbolen, indem Du die Werte für vbCritical, vbInformation, vbExclamation usw. kombinierst, um die Benutzerfreundlichkeit Deiner MsgBox zu erhöhen.
  • Verwende die MsgBox-Konstanten, um Deinen Code leserlicher zu gestalten, anstatt die Zahlenwerte direkt zu verwenden.

FAQ: Häufige Fragen

1. Kann ich die Standard-MsgBox anpassen?
Nein, die Standard-MsgBox bietet keine Möglichkeit zur Anpassung der Buttonbeschriftungen. Für individuelle Beschriftungen musst Du eine UserForm verwenden.

2. Wie kann ich eine MsgBox mit 3 Optionen erstellen?
Du kannst vbYesNoCancel verwenden, um eine MsgBox mit drei Optionen zu erstellen:

Dim Antwort As Integer
Antwort = MsgBox("Wähle eine Option:", vbYesNoCancel + vbQuestion, "Optionen")

3. Was kann ich tun, wenn ich eine MsgBox mit verschiedenen Icons benötige?
Verwende die Konstanten wie vbCritical, vbExclamation oder vbInformation in Deinem MsgBox-Befehl, um das gewünschte Symbol anzuzeigen.

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