Richard has attended:
Excel VBA Advanced course
VBA Advanced
I have developed a userform which has a number of checkboxes (48), named checkbox1 to checkbox48. Is there any way these can be put into a collection of checkboxes, so if I need to do something to them, then can all be changed, or for example, every even one or every 12th one (they represent 4 years).
RE: VBA Advanced
Hi Richard, thanks for your query. There are a number ways you could do this, probably the most efficient would be to use an array, particularly if the check boxes already exist on the form. Here is a basic walkthrough of what I would do. Adapt as you see fit.
Declare the array at the top of the module as so:
Private chkArray(48) as Checkbox
Initialise it:
Set chkArray(0) = chkFirst
Set chkArray(1) = chkSecond
...
Set chkArray(48) = chkLast
...and then use it in this fashion:
Dim intLoop as Integer
Dim intCount as Integer
intCount = 0
For intLoop = 0 to 31
If chkArray(intLoop).Value = True Then
intCount = intCount + 1
End If
Next intLoop
MsgBox "Selected: " & intCount
You should then be able to adapt this select and deselect particular checkboxes, use "Step 2" to select every second one, and so on.
Hope this helps,
Anthony