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

Forumthread: Message Box Auswahl mit Select Case

Message Box Auswahl mit Select Case
04.02.2021 12:56:11
Andl
Hallo Zusammen,
bezugnehmend auf
https://www.herber.de/forum/archiv/1804to1808/1807606_Workflow_durch_InputBoxen_oAe.html
habe ich folegenden Code geschrieben:
Sub BearbeitungsDatumAktivieren()
Tabelle1.Range("B29").Copy Range("B28")
Tabelle1.Range("B29") = Date
Select Case MessageBox.Show("Geben sie bitte zuerst regulare Bankbewegungen ein", vbOKOnly, " _
Einstiegsmaske")
Case Windows.Forms.DialogResult.OK
Call cmd_reguläreBankbewegungen
End Select
End Sub

Mit Ausführung des Ok-Buttons soll ein anderer Code ausgeführt werden.
Muss ich hier irgendwas beachten?
Vielen Dank
Beste Grüße
Andl
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Message Box Auswahl mit Select Case
04.02.2021 13:22:04
Mullit
Hallo,
Du vermischt da VB.NET Code mit VBA, wenn Du nur den OK-Button anzeigen läßt, benötigst Du gar keine Abfrage, vbOKOnly könntest Du auch weglassen, sieht dann in VBA so aus:
'...
Call MsgBox("Geben sie bitte zuerst regulare Bankbewegungen ein", vbOKOnly, "Einstiegsmaske")
Call cmd_reguläreBankbewegungen
'...

Gruß, Mullit
Anzeige
AW: Message Box Auswahl mit Select Case
04.02.2021 16:11:03
Andl
Hallo Mullit,
gut zu wissen. Hat nach deiner Methode nun funktioniert. Danke sehr.
Falls ich mal sowas in der Art schreiben sollte - dann eher mit einem If-Code?
Beste Grüße
Andl
AW: Message Box Auswahl mit Select Case
04.02.2021 16:48:42
Mullit
Hallo Andl,
ja kommt darauf an, bei zwei Buttons ja, sonst eher wieder mit Select Case, gut geht auch If Elseif, ist Geschmackssache...;-)
Select Case MsgBox("Geben sie bitte zuerst regulare Bankbewegungen ein", vbYesNoCancel, " _
Einstiegsmaske")
Case Is = vbYes
Call cmd_reguläreBankbewegungen
Case Is = vbNo
'// Mach was anderes...
Case Else
'// Mach noch was....
End Select

Gruß, Mullit
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Verwendung von Message Boxen mit Select Case in Excel VBA


Schritt-für-Schritt-Anleitung

Um eine Message Box mit Auswahlmöglichkeiten in Excel VBA zu erstellen, folge diesen Schritten:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu starten.

  2. Erstelle ein neues Modul, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen > Modul" auswählst.

  3. Füge den folgenden Code in das Modul ein:

    Sub BearbeitungsDatumAktivieren()
       Tabelle1.Range("B29").Copy Range("B28")
       Tabelle1.Range("B29") = Date
       Select Case MsgBox("Geben Sie bitte zuerst regulare Bankbewegungen ein", vbYesNoCancel, "Einstiegsmaske")
           Case vbYes
               Call cmd_reguläreBankbewegungen
           Case vbNo
               ' Mach was anderes...
           Case vbCancel
               ' Mach noch was...
       End Select
    End Sub
  4. Ändere die Funktionalität innerhalb der Select Case-Struktur nach deinen Bedürfnissen.

  5. Schließe den VBA-Editor und kehre zu Excel zurück. Führe das Makro aus, um die Message Box anzuzeigen.


Häufige Fehler und Lösungen

  • Fehler: "Sub oder Funktion nicht definiert"

    • Lösung: Stelle sicher, dass die aufgerufene Funktion (cmd_reguläreBankbewegungen) im gleichen Modul oder in einem anderen Modul vorhanden ist.
  • Fehler: Die Message Box wird nicht angezeigt.

    • Lösung: Überprüfe, ob der Code korrekt in einem Sub platziert ist und dass keine Syntaxfehler vorliegen.

Alternative Methoden

Eine Message Box kann auch ohne Select Case verwendet werden, wenn nur ein einfacher OK-Button benötigt wird. Hier ist ein Beispiel:

Sub EinfacheMsgBox()
    MsgBox "Geben Sie bitte zuerst regulare Bankbewegungen ein", vbOKOnly, "Einstiegsmaske"
    Call cmd_reguläreBankbewegungen
End Sub

Diese Methode ist ideal, wenn keine Auswahl getroffen werden muss.


Praktische Beispiele

Hier sind zwei verschiedene Anwendungen für die Message Box:

  1. Einfacher Informationsdialog:

    Sub InfoMsgBox()
       MsgBox "Die Daten wurden erfolgreich gespeichert.", vbInformation, "Bestätigung"
    End Sub
  2. Entscheidungsdialog mit mehreren Optionen:

    Sub EntscheidungsMsgBox()
       Select Case MsgBox("Möchten Sie fortfahren?", vbYesNoCancel, "Bestätigung")
           Case vbYes
               MsgBox "Sie haben 'Ja' gewählt."
           Case vbNo
               MsgBox "Sie haben 'Nein' gewählt."
           Case vbCancel
               MsgBox "Aktion abgebrochen."
       End Select
    End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind. Dies kann helfen, Fehler frühzeitig zu erkennen.

  • Experimentiere mit den verschiedenen Optionen der Message Box, wie vbCritical, vbQuestion oder vbInformation, um unterschiedliche Botschaften zu senden.

  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Ausführung zu deaktivieren, und setze sie am Ende wieder auf True, um die Leistung zu verbessern.


FAQ: Häufige Fragen

1. Kann ich eine Message Box in einer Schleife verwenden?
Ja, du kannst eine Message Box in einer Schleife verwenden, um wiederholte Abfragen zu stellen, bis eine gültige Antwort gegeben wird.

2. Wie kann ich die Antwort der Message Box speichern?
Du kannst die Rückgabewerte von MsgBox in einer Variablen speichern:

Dim Antwort As VbMsgBoxResult
Antwort = MsgBox("Fortfahren?", vbYesNo)
If Antwort = vbYes Then
    ' Aktionen für Ja
End If

3. Was ist der Unterschied zwischen Select Case und If...ElseIf?
Select Case ist übersichtlicher, wenn es viele Bedingungen gibt, während If...ElseIf flexibler ist für komplexe Bedingungen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige