Ich habe auf einer Userform auf mehrere Frams mehrere Optionbuttons. Ich möchte gern eine Abfrage durchführen, der Alle optionbutton durchgeht und mir die Werte ausgibt. Leider habe ich nicht geschafft :(
Code eingefügt mit Syntaxhighlighter 1.16
Private Sub CommandButton6_Click()
'Achtung
'Vergleich scheint Case Sensitiv zu sein !!
'Optionbutton wird nicht erkannt
'OptionButton dagegen schon
Dim i As Integer
Dim cb As Control
i = 0
For Each cb In Me.Controls
If TypeName(cb) = "OptionButton" Then
If cb.Value = True Then
i = i + 1
End If
End If
Next
MsgBox "Optionbutton: " & i & " mit WAHR"
End Sub
Öffne den VBA-Editor: Drücke ALT + F11
in Excel, um den VBA-Editor zu öffnen.
Füge eine Userform hinzu: Klicke auf Einfügen > UserForm
, um eine neue Userform zu erstellen.
Füge OptionButtons hinzu: Ziehe mehrere OptionButtons aus der Toolbox auf die Userform.
Füge einen CommandButton hinzu: Platziere einen CommandButton auf der Userform, um die Abfrage auszulösen.
Code für die Abfrage: Doppelklicke auf den CommandButton und füge den folgenden Code ein:
Private Sub CommandButton1_Click()
Dim i As Integer
Dim cb As Control
i = 0
For Each cb In Me.Controls
If TypeName(cb) = "OptionButton" Then
If cb.Value = True Then
i = i + 1
' Hier kannst du den Code hinzufügen, um die Caption zu speichern
End If
End If
Next
MsgBox "Optionbutton: " & i & " mit WAHR"
End Sub
OptionButton-Captions abfragen: Um die Captions der OptionButtons, die True sind, aufzulisten, kannst du den Code wie folgt erweitern:
Dim x As String
If cb.Value = True Then
x = cb.Caption
' Hier kannst du den Code hinzufügen, um x weiterzuverarbeiten
End If
Fehler: OptionButton wird nicht erkannt.
TypeName(cb)
überprüfst.Fehler: MsgBox zeigt immer 0 an.
Wenn du die Excel VBA OptionButtons abfragen möchtest, kannst du auch folgende Ansätze nutzen:
Direkte Zellreferenz: Anstatt die Werte in einer MsgBox anzuzeigen, kannst du die Werte direkt in eine Excel-Tabelle übertragen:
If cb.Value = True Then
Worksheets("Tabelle1").Range("A" & Range("A65536").End(xlUp).Row + 1).Value = cb.Caption
End If
Verwendung von Arrays: Speichere die Captions in einem Array und arbeite anschließend mit diesem Array weiter.
Hier ein einfaches Beispiel für einen Userform mit drei OptionButtons:
OptionButton1
, OptionButton2
, OptionButton3
) und einem CommandButton (CommandButton1
).Füge den folgenden Code in den CommandButton ein:
Private Sub CommandButton1_Click()
Dim cb As Control
For Each cb In Me.Controls
If TypeName(cb) = "OptionButton" Then
If cb.Value = True Then
MsgBox "Ausgewählt: " & cb.Caption
End If
End If
Next
End Sub
Dieses Beispiel zeigt, wie du die Auswahl der OptionButtons abfragen und ausgeben kannst.
1. Wie kann ich den Wert eines OptionButtons abfragen?
Du kannst den Wert eines OptionButtons abfragen, indem du die Value
-Eigenschaft des OptionButtons überprüfst. Beispiel: If OptionButton1.Value = True Then
.
2. Kann ich mehrere OptionButtons gleichzeitig abfragen?
Ja, du kannst eine Schleife verwenden, um alle OptionButtons in deiner Userform zu durchlaufen und deren Werte abzufragen.
3. Wie übertrage ich die Werte in eine Excel-Tabelle?
Verwende Worksheets("Tabelle1").Range("A1").Value = cb.Caption
, um die Caption des OptionButtons in eine Zelle zu übertragen, während du die Schleife durchläufst.
4. Was tun, wenn mein Code nicht funktioniert?
Überprüfe die Syntax und stelle sicher, dass du den Code im richtigen Kontext (z.B. im Click-Ereignis des CommandButtons) einfügst.
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