98.7% Of all customers recommend us, we're so confident about our results we publish all reviews and stats
View Live Stats View ReviewsForum home » Delegate support and help forum » Microsoft Excel VBA Training and help » VBA Advanced
VBA Advanced
Resolved · Medium Priority · Version 2003
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
Tue 21 Dec 2010: Automatically marked as resolved.
Training information:
Welcome. Please choose your application (eg. Excel) and then post your question. Our Microsoft Qualified trainers will then respond within 24 hours (working days). Frequently Asked Questions
Any suggestions, questions or comments? Please post in the Improve the forum thread. |
Excel tip:Stop Formula Returning A "#DIV/0" ErrorIf a formula returns a #DIV/0 error message there is a way to avoid such results. |