Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
comboboxes, userforms and class modules
I have been reading through the forum history on these topics, and am
beginning to understand how to use a class module to trap events on a userform, but as a pretty raw beginner i am sure there is a lot i am missing. so i hope someone can help me. I have multiple userforms, with multiple comboboxes (between 9 and 33, i think but the specific number shouldn't matter). each userform also has a single textbox, and a single commandbutton. without getting into specifics, the textbox shows the total price of all the selections from the comboboxes, and the commandbutton writes a receipt of all the purchases. so right now i have a procedure called recalc, which takes one argument, which is the userform itself. the code in recalc look likes this: Public Sub recalc(ByVal MyUserForm As Object) Dim customerprice As Integer Dim ctl As Control MyUserForm.TextBox1.Value = 0 customerprice = 0 For Each ctl In MyUserForm.Controls If TypeName(ctl) = "ComboBox" Then customerprice = customerprice + Price(ctl.Tag, (2 + ctl.ListIndex)) End If Next ctl MyUserForm.TextBox1.Value = Round((1.05 * customerprice), 0) End Sub and my code for each "change" event in the comboboxes looks like this: Private Sub ComboBox1_Change() Call recalc(Me) End Sub what i want to do in the class module is something like this: Option Explicit Public WithEvents mCBGroup As msforms.ComboBox Private Sub mCBGroup_Change() Call recalc(Me) End Sub but i understand that the (Me) is not working, because that will only work from the "userform" code module itself. so after all that, the question is how to write the code in the class module so that after the event procedure ALL the comboboxes are grabbed, not just the one that changed. I guess i also understand that there may be a more efficient way to write this code, then looping through all of the comboboxes every time. That worked for me, because it allowed the user to change her mind midstream and change a previous selection. Any and all suggestions are greatly appreciated. Thanks in advance. |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Basic question - modules and class modules - what's the difference? | Excel Programming | |||
Class Modules | Excel Programming | |||
Class Modules | Excel Programming | |||
Class Modules vs Modules | Excel Programming | |||
Delete Modules and Userforms | Excel Programming |