Ich benötige eine Messagebox mit zwei Auswahlfeldern.
Feld 1 = Auto
Feld 2 = Bus
Nach Auswahl soll die Auswahl in die Variable Auswahl gespeichert werden.
Wie kann man das hinbekommen?
Schönen Abend Tobias
Private Sub Commandbutton1_Click()
DeinMakro ActiveControl.Caption
Hide
End Sub
Private Sub Commandbutton2_Click()
DeinMakro ActiveControl.Caption
Hide
End Sub
im Modul:
Sub DeinMakro(sFahrzeug As String)
If sFahrzeug = "" Then
MsgBox "Es wurde kein Fahrzeug gewählt!"
Else
MsgBox "Gewähltes Fahrzeug: " & sFahrzeug
End If
End Sub
Sub start()
UserForm1.Show
End Sub
Gruß
Sub DeinMakro()
UserForm1.Show 'Hier wird Auto oder Bus ausgewählt
If sFahrzeug = "Auto" Then
End If
If sFahrzeug = "Bus" Then
End If
sFahrzeug = "" 'am Ende zurücksetzen
End Sub
Private Sub Commandbutton1_Click()
sFahrzeug = "Auto"
Unload Me
End Sub
Private Sub Commandbutton2_Click()
sFahrzeug = "Bus"
Unload Me
End Sub
3. Die öffentliche Variable anlegen. Dazu folgende Zeile zwingend in ein Modul (nicht in ein _
Tabellenblatt) oberste Zeile kopieren, sonst funktioniert es nicht:
Public sFahrzeug As String
4. In dein Makro an der Stelle wo du deine "Messagebox" haben willst die Userform aufrufen:
UserForm1.Show
Ab jetzt sollte deine Variable den entsprechenden Wert haben und du kannst damit arbeiten.
If sFahrzeug = "" Then
MsgBox "Es wurde kein Fahrzeug gewählt!"
Exit Sub 'beende Makro (bzw. Grundeinstellungen vorher vornehmen)
End If
6. Als letzte Zeile in deinem Makro dann die Variable zurücksetzen:
sFahrzeug = ""
Hoffe es war jetzt verständlicher.Erstelle eine Userform: Öffne den VBA-Editor (ALT + F11) und füge eine neue Userform hinzu.
Füge Buttons hinzu: Platziere zwei Schaltflächen auf der Userform, zum Beispiel "Auto" und "Bus". Ändere die Beschriftung der Buttons durch Auswahl des Buttons und Drücken von F4, um die Eigenschaften zu öffnen.
Code für die Buttons: Füge den folgenden Code in die Userform ein, um die Auswahl zu verarbeiten:
Private Sub CommandButton1_Click()
sFahrzeug = "Auto"
Unload Me
End Sub
Private Sub CommandButton2_Click()
sFahrzeug = "Bus"
Unload Me
End Sub
Öffentliche Variable deklarieren: Deklariere die öffentliche Variable sFahrzeug
in einem Modul:
Public sFahrzeug As String
Userform im Makro aufrufen: Rufe die Userform in deinem Hauptmakro auf:
Sub DeinMakro()
UserForm1.Show
If sFahrzeug = "" Then
MsgBox "Es wurde kein Fahrzeug gewählt!"
Exit Sub
End If
MsgBox "Gewähltes Fahrzeug: " & sFahrzeug
sFahrzeug = ""
End Sub
Fehlerbehandlung hinzufügen: Stelle sicher, dass dein Makro keine Fehler verursacht, wenn die Userform mit dem kleinen X geschlossen wird.
Problem: Die Variable sFahrzeug
bleibt leer.
sFahrzeug
verbunden sind.Problem: Es wird ein falscher Wert angezeigt.
sFahrzeug
am Ende des Makros zurück, um sicherzustellen, dass der alte Wert nicht erhalten bleibt.Wenn du keine Userform verwenden möchtest, kannst du auch eine einfache MsgBox
mit Ja/Nein
-Optionen nutzen. Hier ein Beispiel:
Dim Antwort As Integer
Antwort = MsgBox("Möchtest du Auto oder Bus wählen?", vbYesNo + vbQuestion, "Fahrzeugwahl")
If Antwort = vbYes Then
MsgBox "Du hast Auto gewählt."
Else
MsgBox "Du hast Bus gewählt."
End If
Dies ist jedoch weniger flexibel als die Verwendung einer Userform mit individuellen Auswahlmöglichkeiten.
Hier ist ein einfaches Beispiel für eine Userform
mit zwei Auswahlmöglichkeiten:
Private Sub CommandButton1_Click()
sFahrzeug = "Auto"
Unload Me
End Sub
Private Sub CommandButton2_Click()
sFahrzeug = "Bus"
Unload Me
End Sub
In deinem Hauptmakro kannst du dann die Auswahl wie folgt verwenden:
Sub DeinMakro()
UserForm1.Show
If sFahrzeug = "" Then
MsgBox "Es wurde kein Fahrzeug gewählt!"
Exit Sub
End If
MsgBox "Gewähltes Fahrzeug: " & sFahrzeug
sFahrzeug = ""
End Sub
On Error GoTo
für eine bessere Fehlerkontrolle in deinem VBA-Code.1. Wie kann ich die Userform anpassen?
Du kannst die Eigenschaften der Userform über das Eigenschaftenfenster im VBA-Editor ändern, einschließlich Größe, Farbe und Schriftart.
2. Was mache ich, wenn die Userform nicht angezeigt wird?
Stelle sicher, dass du die Userform korrekt im Makro aufrufst. Prüfe auch, ob es Fehler im Code gibt, die die Ausführung verhindern könnten.
3. Ist es möglich, mehr als zwei Optionen in der Userform zu haben?
Ja, du kannst so viele Buttons oder Auswahlfelder hinzufügen, wie du benötigst, um verschiedene Optionen anzubieten.
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