Hallo VBA'ler,
ich habe auf einer Multipage acht OptionButton unter einem GroupName.
Ich möchte per Programm eine Meldung bringen, wenn keiner dieser Button angeklickt ist.
Mit dem Code:
if optEins.value = false and
optZwei.value = false and
...
optDrei.value = false then
msg ....
klappt das wohl, es müsste aber doch eine kürzere Form geben. Da ich mehrere ähnliche Abfragen brauche, würdet Ihr mir damit sehr helfen.
Im Forum habe ich in dem Zusammenhang etwas über Collection gelesen, es aber leider nicht verstanden.
Vielleicht geht es ja mit einer 'for...each' Schleife?
==============================================================================
Antwort:
Private Sub CommandButton1_Click()
GroupName = "X"
Schalter = 0
For Each ctr In ActiveSheet.OLEObjects
If ctr.progID = "Forms.OptionButton.1" Then
If ctr.Object.GroupName = GroupName And ctr.Object.Value = True Then
' MsgBox ctr.Object.Caption
Schalter = 1
End If
End If
Next
If Schalter = 0 Then
MsgBox "Kein OptionButton für " & GroupName & " ausgewählt!"
End If
End Sub