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

Messagebox mit eigenen Buttons

Forumthread: Messagebox mit eigenen Buttons

Messagebox mit eigenen Buttons
15.06.2009 13:47:11
Daniel
Hallo!
da die Beschriftung der Buttons der Standardmessagebox nicht geändert werden kann, habe ich mir eine Userform erstellt. Im Programmablauf öffne ich die Userform mit Userform.Show. Nun möchte ich, dass je nach Auswahl ("Drücken") des Buttons eine Variable mit einem Wert gefüllt werden soll. Dieser Wert soll im Programm weiterverwendet werden. Ist das möglich? Wenn ja, wie? Vielen Dank im Voraus
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Messagebox mit eigenen Buttons
15.06.2009 14:10:33
Michael
Hallo,
z.Bsp. so:

Private Sub CommandButton1_Click()
Dim strgVariable As String
strgVariable = "Wert" 'hier den Wert hinterlegen
MsgBox strgVariable
End Sub


Grüße
Michael

AW: Messagebox mit eigenen Buttons
15.06.2009 14:11:36
ptonka
Hallo,
die jew. Button mit folgendem Code hinterlegen:
Public Variable1 as string

Private Sub CommandButton1_Click()
Variable1 = "Wert 1"
End Sub


Durch das publizieren der Variable, kann diese in anderen Prozeduren verwendet werden.
Gruß,
Ptonka

Anzeige
AW: Messagebox mit eigenen Buttons
15.06.2009 14:18:55
Daniel
Danke schonmal! Noch eine weitere Frage: Ist es möglich, dass Programm solange zu unterbrechen, bis die Auswahl getroffen wurde?
Gruß Daniel
;
Anzeige
Anzeige

Infobox / Tutorial

Messagebox mit eigenen Buttons in VBA


Schritt-für-Schritt-Anleitung

  1. Userform erstellen: Öffne den VBA-Editor (Alt + F11) und füge eine neue Userform hinzu. Du kannst dies unter "Einfügen" > "Userform" tun.

  2. Buttons hinzufügen: Ziehe die gewünschten Buttons auf die Userform. Du kannst die Buttons umbenennen, um ihre Funktion zu kennzeichnen (z.B. CommandButton1, CommandButton2).

  3. Button-Code schreiben: Doppelklicke auf einen Button, um den Code-Editor zu öffnen und füge den folgenden Code ein, um die Variablen zu setzen:

    Public Variable1 As String
    
    Private Sub CommandButton1_Click()
       Variable1 = "Wert 1"
       Me.Hide 'Schließt die Userform
    End Sub
    
    Private Sub CommandButton2_Click()
       Variable1 = "Wert 2"
       Me.Hide 'Schließt die Userform
    End Sub
  4. Userform aufrufen: Du kannst die Userform mit folgendem Code in einem Modul aufrufen:

    Sub ShowUserForm()
       UserForm1.Show
       MsgBox "Ausgewählter Wert: " & Variable1
    End Sub
  5. Programmausführung unterbrechen: Um das Programm solange zu stoppen, bis eine Auswahl getroffen wurde, kannst du die Userform modal anzeigen. Dies geschieht automatisch, wenn du UserForm1.Show vbModal verwendest.


Häufige Fehler und Lösungen

  • Fehler: Userform erscheint nicht
    Lösung: Stelle sicher, dass die Userform korrekt in deinem VBA-Projekt erstellt wurde und der Name in deinem Code übereinstimmt.

  • Fehler: Variable bleibt leer
    Lösung: Prüfe, ob die Userform tatsächlich geschlossen wird, nachdem ein Button gedrückt wurde. Der Befehl Me.Hide sorgt dafür, dass die Userform geschlossen wird und die Variable gesetzt bleibt.


Alternative Methoden

Eine andere Möglichkeit, um die Buttons einer Messagebox selbst zu beschriften, wäre die Verwendung der MsgBox-Funktion in Kombination mit einer Benutzerdefinierten Funktion. Allerdings ist es wichtig zu beachten, dass die Standard-MsgBox keine benutzerdefinierten Button-Beschriftungen unterstützt. Daher ist die Verwendung einer Userform oft die bessere Wahl.


Praktische Beispiele

  1. Beispiel für eine einfache Userform:

    Private Sub CommandButton1_Click()
       Variable1 = "Ja"
       Me.Hide
    End Sub
    
    Private Sub CommandButton2_Click()
       Variable1 = "Nein"
       Me.Hide
    End Sub
  2. VBA-Sub, um die Userform zu starten:

    Sub Start()
       UserForm1.Show vbModal
       MsgBox "Du hast gewählt: " & Variable1
    End Sub

Tipps für Profis

  • Nutze die Userform-Eigenschaften, um das Design zu personalisieren, z.B. Hintergründe oder Schriftarten.
  • Kombiniere mehrere Userforms, um komplexe Auswahlmöglichkeiten zu bieten.
  • Dokumentiere deinen Code sorgfältig, um die Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Kann ich die Beschriftung der Buttons in einer Standard-Messagebox ändern?
Nein, die Standard-MsgBox-Funktion in VBA erlaubt keine benutzerdefinierten Button-Beschriftungen. Eine Userform ist die beste Lösung.

2. Wie kann ich eine Variable aus einer Userform in einem anderen Modul verwenden?
Indem du die Variable als Public deklarierst, kannst du sie in anderen Modulen verwenden, solange die Userform einmal geöffnet wurde.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige