Home |
Search |
Today's Posts |
#4
![]()
Posted to microsoft.public.excel.programming
|
|||
|
|||
![]()
From a programmer's perspective, if your sub procedure requires a
value or an object then pass it in as a parameter. Give you're sub procedure an argument. If your sub procedure just needs the text, pass in the text e.g. Public Sub MyMacro(ByVal Text As String) ' <Do something with Text here End Sub Private Sub cmdRun_Click() MyMacro txtTest.Text End Sub However, if your sub procedure needs to operates on the textbox object itself, then use the textbox as the argument (i.e. pass a pointer to the textbox) e.g. Public Sub MyMacro(ByVal oTextBox As MSForms.TextBox) ' <Do something with oTextBox here End Sub Private Sub cmdRun_Click() MyMacro txtTest End Sub -- Rich J wrote in message ... The Modules don't recognize the controls on a Userform. There are several things you can do. 1) Put the MyMacro code in the Userform code. or 2) Pick a cell on the worksheet to pass the value to. Then pick it up from sheet in MyMacro Private Sub txtTest_Change() Instead of this sub you could also set the ControlSource for range("A1") = txtTest.value the textbox in the userform to a particular cell in the worksheet. End Sub Just put A1 in the controlsource line in the properties window. Sub MyMacro() Dim strTest as String strTest = range("A1") . . 3) Probably the best way is to add the variable to your macro name This assumes MyMacro is on Module1 Sub MyMacro (str) strTest = str end sub ' The code on your userform could look like this Private Sub cmdRun_Click() Dim Temp as string Temp = txtTest.value If Temp < vbNullString then ' This would not let the macro to be called if the textbox was empty Module1.MyMacro Temp ' If you add the variable to the macro name on Module1 then as soon end if ' as you type ' Module1. ' on the userform code, you should see a window open End Sub ' with MyMacro as a choice. Then when you add that and have Module1.MyMacro ' you should see str meaning that a value needs to be in the line. Temp will ' pass the value to str I hope I'm being clear for you. I'm not a programmer but I've been doing a lot with Userforms |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Forum | |||
How to pass values from a userform to a standard module? | Excel Programming | |||
Passing variables from module to userform | Excel Programming | |||
UserForm TextBox to ActiveSheet TextBox over 256 characters | Excel Programming | |||
Userform with template class module problem | Excel Programming | |||
Delete userform/module using VB | Excel Programming |