AW: Gruppierte Optionbuttons ansprechen
06.06.2024 09:00:58
daniel
Hi
ich würde, wenn es von der Gestaltung her möglich ist, die Optionbuttons löschen und jede Gruppe durch eine Listbox ersetzen
(die kann man auch so formatieren, dass sie wie eine Optionbuttongruppe aussieht)
dann wäre der Code einfach
If IistboxG1.listindex >= 0 then Cells(...).value = ListboxG1.Value
wenn es auch ok ist, dass der Text sofort in die Zelle geschrieben wird, kann man der Listbox auch eine Ausgabezelle zuweisen (Zelladresse in ControlSource eintragen), dann geht das ganze ohne eine Zeile Code.
bei Optionbuttons hängt die Programmierung davon ab, ob du die Buttons über die Eigenschaft Groupname oder über den Rahmen zusammengefasst hast.
bei Gruppennamen so:
Private Sub CommandButton1_Click()
Dim crt As Control
For Each crt In Me.Controls
If TypeName(crt) = "OptionButton" Then
If crt.Value Then
If crt.GroupName = "G1" Then Cells(1, 1).Value = crt.Caption
If crt.GroupName = "G2" Then Cells(2, 1).Value = crt.Caption
End If
End If
End If
Next
End Sub
Bei Verwendung von Rahmen/Frames zum gruppieren:
Private Sub CommandButton1_Click()
Dim crt As Control
For Each crt In Frame1.Controls
If TypeName(crt) = "OptionButton" Then
If crt.Value Then Cells(1, 1).Value = crt.Caption
End If
Next
For Each crt In Frame2.Controls
If TypeName(crt) = "OptionButton" Then
If crt.Value Then Cells(2, 1).Value = crt.Caption
End If
Next
End Sub
wie du siehst, machen dir hier Listboxen das Leben wesentlich einfacher.
Gruß Daniel