View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Nigel Nigel is offline
external usenet poster
 
Posts: 923
Default How to pass a variable from Form back to calling procedure

How are you testing the value ? If it is in the module calling the form,
then as it is modeless the code will complete BEFORE the form action has
been completed.

I added the following I get the value correctly displayed....

' in the frmUserForm14 code
Private Sub UserForm_Terminate()
Call TestValue
End Sub

' in the main module
Sub TestValue()
MsgBox strVariable
End Sub




--
Cheers
Nigel



"John" wrote in message
oups.com...
I want to call a form from a procedure, selected the value of a
variable in the form, and pass the value back to the procedure. How can
I do this?

Here is what I've tried.

--------calling proc-----------

Public strVariable as String

Sub CallingProcedure()
Dim procVar1 as string
...

strVariable=""

frmUserForm14.Show vbModeless

cellLinkI = strVariable
...

End Sub
------------------------------
----code in frmUserForm14-----
(no declarations)

Public butOkay_Click()
Dim strFormVar as String

strFormVar=""
If strFormVar="X" Then
strVariable=strFormVar
Else
strVariable="Z"
End If

Unload Me

End Sub
------------------------------

When this code is run, the value of strVariable after the call is "".

Another way to do this might be to call the form with the variable
"ByRef" so that it is returned to the variable in the calling
procedure.

Maybe the problem is that the Form is not a Module.

Thank you.

John Wirt