Ok. Wie von anderen schon gezeigt, hast du verschiedene Möglichkeiten.
1) Durch alle Controls in deiner UserForm iterieren und dabei nur die CheckBox'n berücksichtigen.
Dim ctl As MSForms.Control
For Each ctl In Me.Controls
If TypeOf ctl Is MSForms.CheckBox Then
' 'ODER: If TypeName(ctl) = "CheckBox" Then
ctl.Value = False
End If
Next
2) Geziehlt nur die CheckBox'n ansprechen. Möglich wenn ihre Namen einheitlich sind, mit angehängtem Index.
Dim i As Long
For i = 1 To 27
Me.Controls("MyCheckBoxName" & i).Value = False
Next
Anmerkung: CheckBox'n haben noch eine Eigenschaft 'GroupName' zum Gruppieren. Auch darüber, könnte man diese noch feiner ansprechen (falls du verschiedene Gruppen definiert hast bzw. das Sinn macht).
3) Du setzt in der Entwurfsansicht die Eigenschaft Value bei allen ComboBox'n auf False - einfach alle markieren und unter Eigenschaften Value auf False setzen.
4) Andere Lösungswege sind auch noch denkar, aber schon sehr spezifisch und teilweise umständlich in der Handhabung und Verwaltung.
jede CheckBox eine andere Anweisung, falls die CheckBox true ist.
Dazu gibt es ja jeweils das CheckBox_Change()-Ereignis.
Grüße
PS: Das Me ist in der UserForm selbst optional, kann also auch weggelassen werden (Me.Controls => Controls).
|