I have tried to change my tests to your names etc., and this works for me
Me.CmdPivot.BackColor = BnClass.Item(6).mButtonGroup.BackColor
where BnClass is the name of the collection in the form, and mButtonGroup is
the name of the public withevents button variable in the class.
--
HTH
RP
(remove nothere from the email address if mailing direct)
"Myles" wrote in
message ...
I have a Class Event that controls a group of CommandButtons and set
up as follows in a Class Module (named BnClass).
Public WithEvents ButtonGroup As Msforms.CommandButton
Sub ButtonGroup_Click()
<code
End sub
I have no difficulty accessing any of the 60 buttons involved from the
Userform module or a general module but in either instance only through
the facility of a
*For each ... Next* construct which enables me to tap into the
controls collection.
Now, my problem is to get the right syntax to access *only one* of the
buttons without having to resort to For each ... next Loop. For
example, in the Userform module, I attempted (and crashed!) in a bid
to re-assign an attribute of CommandButton20 from the group to another
control (CmdPivot). None of the following worked with each throwing up
"Object Required" error.
Me.CmdPivot.BackColor = BnClass.ButtonGroup(CommandButton20).BackColor
Me.CmdPivot.BackColor = BnClass.(CommandButton20).BackColor
Me.CmdPivot.BackColor = CommandButton20.BackColor
Can someone kindly point me the way?
[ I want to avoid the verbosity of using a loop as in: For each ctl
in Me.Controls
If Typename(ctl) ="CommandButton" Then
If ctl.Name="CommandButton20 Then
< code
End if
End if
Next
This is because I have a number of such and similar assignments to make
here and there (18 in total) and would imagine that applying looping
each time will be unwieldy.]
Thanks
Myles
--
Myles
------------------------------------------------------------------------
Myles's Profile:
http://www.excelforum.com/member.php...o&userid=28746
View this thread: http://www.excelforum.com/showthread...hreadid=492389