Public Schedule Face-to-Face & Online Instructor-Led Training - View dates & book

vba advanced

ResolvedVersion 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 courses

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
What does 'Resolved' mean?

Any suggestions, questions or comments? Please post in the Improve the forum thread.

Excel tip:

Make a quick copy of a worksheet

Hold down the Ctrl key, then click and drag on a sheet tab to make a copy of that sheet. Though this process usefully copies the formats of the original sheet, note that any Range Names you have on the original sheet will be duplicated too.

To make a copy of a worksheet's contents and formats without duplicating range names: (1) Ensure that you have a blank worksheet to paste to. (2) On the sheet to copy, click on the sheet selection square to the left of Column A's heading to select the whole sheet. (2) Copy the whole sheet. (3) Paste to the blank worksheet.



View all Excel hints and tips

Connect with us:

0207 987 3777

Call for assistance

Request Callback

We will call you back

Server loaded in 0.09 secs.