View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Chip Pearson Chip Pearson is offline
external usenet poster
 
Posts: 7,247
Default Pass control to a function/subroutine

In the userform's code module, use the following event for your text box:

Private Sub TextBox1_MouseUp(ByVal Button As Integer, ByVal Shift As
Integer, _
ByVal X As Single, ByVal Y As Single)
If Button = xlSecondaryButton Then
TheProc CTL:=Me.TextBox1
End If
End Sub

Then, in regular code moudle, use

Sub TheProc(CTL As MSForms.Control)
If TypeOf CTL Is MSForms.TextBox Then
MsgBox "Control Is A Text Box: " & CTL.Name & vbCrLf & _
CTL.Text
Else
Debug.Print "NOT A TEXT BOX: " & CTL.Name
End If
End Sub


--
Cordially,
Chip Pearson
Microsoft MVP - Excel, 10 Years
Pearson Software Consulting
www.cpearson.com
(email on the web site)



"Dale Fye" wrote in message
...
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.