Quote Originally Posted by xltrader100
Ok, as you suggested I've converted the handlers to Public Subs on the form, but I'm still not able to access them from the class. Here's an example.

CmdButton50 gets clicked on Userform1. The click is detected by classCmdButtons, who now wants desperately to tell somebody about it, but the click is handled with the form Sub named "Public Sub CmdButton50Click", and the only way the class can run the handler directly is to construct the name of the handler using concatenation, knowing the name of the clicked button and knowing that the handler is always the button name + "Click". And this is my sticking point, and the reason that I thought that Application.Run might be the way to go. Your suggestion of Form.YourPublicSub1 would work if I didn't have to construct the name of the Sub, but since I do, is there another syntax that would work here? The handler name is being constructed just fine and Application.Run is trying to run the right Sub but it just can't see into the form to find it.
Then I repeat, if the code for the click event is in the userform, don't set that up in the control array class. If you have many buttons that do the same thing, you can set these up to be managed by the control array class, the others you leave as managed by the userform class.

There is no problem doing that, but it seems perverse to me to have the code in the form and manage the click event from the control array class in order to call the event in the form.