Counting/Changing multiple buttons?

P

PaulW

I'm making a userform, and with each userform everything gets more complete
with more options.

An example was a recent one with 21 togglebuttons.

What i'm wanting to be able to do is to easy change all the togglebuttons to
FALSE, or count how many are on true.
To switch them all i've had to put a line of code for each, setting them to
false individually.
To count them all I've had to set a variable, and check each one
individually, and if its TRUE add 1 to the variable.

Is there a simple way to either use a global command to change/count every
togglebutton, or a simple way to loop through them all?

sub change()
for each togglebox in userform
let value = false
next
end sub

sub change()
for i = 1 to 21
let togglebox & i value = false
next
end sub

Are a couple of things I tried unsuccessfully...
 
V

Vergel Adriano

Paul,

try something like this:

Dim ctrl As Control
For Each ctrl In Me.Controls
If TypeOf ctrl Is ToggleButton Then
ctrl.Value = Not ctrl.Value
End If
Next ctrl
 
P

Peter T

Sub change()
Dim ctl As Control

For Each ctl In Me.Controls
'If TypeName(ctl) = "ToggleButton" Then
'or
If TypeOf ctl Is MSForms.ToggleButton Then
ctl.Value = False
End If
Next

If all the togglebuttons have similar names, eg ToggleButton-X

For i = 1 To 21
Me.Controls("ToggleButton" & i).Value = True
Next


If at design time you place your togglebuttons on the form consequtively you
can loop controls by Index. The Index of the first added control is 0. The
index numbers will never change (cannot be changed) EXCEPT if you delete a
control, then the index of each subseqent control will increment down by
one.

So, if say the first added control is your Cancel button, then you added 21
Togglebuttons you could do this

For i = 1 To 21
Me.Controls(i).Value = False
Next

Regards,
Peter T
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top