View Single Post
  #5   Report Post  
Posted to microsoft.public.excel.programming
Jim Thomlinson[_3_] Jim Thomlinson[_3_] is offline
external usenet poster
 
Posts: 983
Default Using Public to Pass Variable

To keep my naming straight I do the following:

In the visual basic editor right click on any of the modules, sheets or
forms in the projects window. Select insert module. If the properties window
is not visible select view -properties window. The first item in the
properties window for your new module will be name. It will say something
like module1. Change that to modGlobal. Now within that module add the line

public g_mStrName as string

This is the naming convention I use. g stands for global. m stands for
module. Str stands for string. Now when I am using the variable I know
exactly where it came from and what kind of variable it is.

In your form you can get a list of all of your global variables by typing
"modGlobal." and you will get a listing of all the public variables in the
module. so your line of code will look like...

msgbox modGlobal.g_mStrName

or if you want you can just enter it as

msgbox g_mStrName

HTH

"D.Parker" wrote:

I have renamed my variable from Name to XName, for the sake of example.

My Module call my UserForms, so would I place the Public declarations at the
first line of the module? I not clear on the placement of the Public XName
as String declaration?
Thank you.

DP

"Jim Thomlinson" wrote:

Give this a try...

msgbox userform4.Name

Depending where all you have declared a variable called Name you may need to
be more explicit in your reference to Name.

One thing I do if I am going to be requiring Global Variables is to declare
a module strictly for the purpose of storing them. I can then just refer to
them by referencing that module. Keeps things a little straighter if they are
all in one place...

HTH

"D.Parker" wrote:

I have a UserForm that captures the users name, I am trying to pass that
information to another UserForm. I'm assuming that is possible using the
Public declarations, but I am obviously having problems. Here is my example
code

Public Name As String
________________________________
Private Sub OKButton_Click()
Name = NameBox1

UserForm4.Hide
End Sub
________________________________

'Name gets passed to this UserForm

________________________________
Private Sub SignOffButton_Click()
MsgBox Name

Unload UserForm5
End Sub
________________________________

Do I need to declare the variables Public in UserForm5 also? Are they
declared in the right place? Should the subs be name Public instead of
Private? etc. My MsgBox is returning empty. Any help is greatly
appreciated.

DP