View Single Post
  #1   Report Post  
Posted to microsoft.public.excel.programming
Dale Fye Dale Fye is offline
external usenet poster
 
Posts: 169
Default Pass control to a function/subroutine

I want to popup a shortcut menu whenever a user right clicks in a textbox on
my userform. I initially tried to use:

ctrl = Screen.Activecontrol 'this is how I would do it in Access

but this did not work. Since I have several userforms, and I want this
subroutine to work for each of them, I tried declaring the control in the
subroutines declaration statement:

Public Sub EditMenuPopup(ctrl as Textbox)

Unfortunately, with this approach, I encountered two problems. When I called
the sub using:

Call EditMenuPopup(me.txt_SomeControl)

I got an error because it was trying to pass the value of the control, not
the actual control. When I tried:

Call EditMenuPopup(me.ActiveControl)

I got a type mismatch because it believes that the active control is a
multipage control, not the textbox that actually has the focus.

In some forms, the textbox might be on a multipage (tab) control, in others
it will just be on the main form, and this would probably work.

I thought about passing the userform and control names but don't know how to
refer to refer to the form with its name. In Access I would use:

Forms(strFormName)

Any ideas how to work approach this issue would be greatly appreciated

Dale

--
Don''t forget to rate the post if it was helpful!

email address is invalid
Please reply to newsgroup only.