View Single Post
  #4   Report Post  
Posted to microsoft.public.excel.programming
ExcelMonkey[_190_] ExcelMonkey[_190_] is offline
external usenet poster
 
Posts: 172
Default Public Variables

Sorry Tom but I am confused. I have two userforms.
Userform1 calls Userform2. Userform2 loads an array and
takes the user back to userform1. Userform1 has my main
routine. This main routine does not recognize the array
loaded in Userform2. I want this array available to all
of the routines behined Userform1 and perhaps others as
well.

Do I:
1)Declare array as public in Userform2
2)Delcare array as public in Userform1
3)Delare array as public in a Class Module

Thanks and sorry for the confusion.



-----Original Message-----
Declare the public variable in you general module.

Public variables in a class module (such as a userform)

have scope within
the form.

You could address it as a property of the form

Userform1.SheetExcludeArray

Also, your current use in Userform2 is working with a

different
SheetExcludeArray.

But if you unload the form, it is gone. So better to

declare it in your
module.

--
Regards,
Tom Ogilvy

"ExcelMonkey"

wrote in message
...
Or is this because public variables do not have the

scope
across userforms? That originally I was generating the
array in a sub within userform1 that was creating

another
temporary userform(dilaogue sheets). The final sub

that
used the array was in a sub that was within userform1.

I have done away with teh dilog sheets and have had to
build a second userform. Is the issue that I actually
popeulate the array in userfor2 but now need to pass it
to userform1 so the sub in userform1 can use it? This

is
confusing too becuase I was able to populate the array

in
userform 2 without declaring it But the again, I was

not
in Option Explict mode either......ummmmmmm.



-----Original Message-----
I have a file with 3 userforms and 1 module. In

userfor1
I have declared a public variable:

Public SheetExcludeArray As Variant

The first part of this form calls userform2 which
populates the array. On userform2 I populate this

array
and the Debug.Print tells me the values are present
within the procedcures that support useform2. When I

am
finished with this form I Unload it and this takes me
back to userform1. When I complete the rest of

userform1
my main routine is called. The main routine uses teh
values from the array I populated. However the values
are not longer present. Is this becuase I am

unloading
the form?

Thanks
.



.