333 Aufrufe
Gefragt in Tabellenkalkulation von Mitglied (439 Punkte)
Hallo zusammen,

ich habe hier in Excel/VBA eine UserForm mit mehreren Kontrollfeldern (Checkbox). Die haben alle den Standardnamen Checkbox1, Checkbox2 usw. und sind alle disabled.

Nun möchte ich die Kontrollfelder von 1 bis i enablen, wobei i variabel ist. Bislang mache ich das so:
____________________________________
i = 1
i_max = 2
If i <= i_max then
Me.Checkbox1.Enable = True
Else
Exit Sub
End If

i = i + 1
If i <= i_max then
Me.Checkbox2.Enable = True
Else
Exit Sub
End If

i = i + 1
If i <= i_max then
Me.Checkbox3.Enable = True
Else
Exit Sub
End If
.
.
.
____________________________________

Ziemlich nervig …

Also suche ich nach einer Lösung mit einer Schleife.
Zum Beispiel so:
____________________________________
i_max = 2
For i = 1 to i_max
If i <= i_max then
"Me.Checkbox" & i &.Enable = True
Else
Exit For
End If
Next
____________________________________
Das geht so natürlich nicht.

Könnt ihr mir vielleicht helfen?


Danke und Gruß
Heiko1985

2 Antworten

0 Punkte
Beantwortet von
Hallo Heiko,

nutze die Controls-Auflistung

Me.Controls("Checkbox"&i).Enabled=True

Gruß Mr. K.
0 Punkte
Beantwortet von Mitglied (439 Punkte)
Diese Funktion war mir nicht bekannt.
Klappt wunderbar. Vielen Dank!
...