How to get get variables to move from userform to main sub?

C

Chet

I just tried that and watched the value of LocID and it keeps the value

until the UNLOAD USERFORM1 command is ran and then I get 'out of
context' for that variable even with the public declaration of the
variables. See my code below. (It's very simple.) .. Thx!


Public Direction As String
Public DOW As String
Public LocID As String
Private Sub CommandButton2_Click()


End Sub
Private Sub OKButton_Click_Click()
Msg = "You selected Item # "
Msg = Msg & ListBox1.ListIndex
Msg = Msg & vbCrLf
Msg = Msg & ListBox1.Value
LocID = ListBox1.Value
MsgBox Msg
Unload UserForm1
End Sub
Private Sub UserForm_Click()


End Sub


//////////////////////////////REPLY I GOT WAS
THIS//////////////////////////////////////////////


From: K Dales - view profile
Date: Wed, May 10 2006 11:45 am
Email: K Dales <[email protected]>
Groups: microsoft.public.excel.programming
Not yet ratedRating:
show options


Reply | Reply to Author | Forward | Print | Individual Message | Show
original | Report Abuse | Find messages by this author


If you declare all your variables used for input as Public (at the top
of the
userform module - not inside your subs) they are global variables; that

is,
they are available to all modules. There are other ways, too, but this

is
simplest.
--
- K Dales


- Hide quoted text -
- Show quoted text -




- Hide quoted text -
- Show quoted text -

Chet said:
Hi -
I am new to using 'custom dialog boxes'. I am trying to take some data
from my user form once I have hit the OK button on the userform and
bring those entries back to my main sub where I will use this data to
run the rest of my code. I am able to get the form working but the
userform inputs seem to be local to the code that I have for the form
but I haven't been able to get the variables back to my main code
section.
PS, My userform is in my personal.xls and I will be using the data to
affect a separate workbook.
Thanks,
Chet
Code I have so far....
'///////////////////////CODE IN THE
USERFORM///////////////////////////////////////
Private Sub CommandButton2_Click()
End Sub
Private Sub OKButton_Click_Click()
Msg = "You selected Item # "
Msg = Msg & ListBox1.ListIndex
Msg = Msg & vbCrLf
Msg = Msg & ListBox1.Value
LocID = ListBox1.Value
MsgBox Msg
Unload UserForm1
End Sub
'/////////////////MAIN PROGRAM CODE////////////////////////////////
Sub TOOLBAR_POSTAL_BYP_MIX_BREAKOUT_vsn2()
With UserForm1.ListBox1
.AddItem "SFO"
.AddItem "OAK"
.AddItem "SJC"
End With
With UserForm1.ListBox2
.AddItem "ORIG"
.AddItem "DEST"
End With
With UserForm1.ListBox3
.AddItem "Weekday"
.AddItem "Saturday"
.AddItem "Sunday"
End With
UserForm1.ListBox1.ListIndex = 0
UserForm1.Show
'the rest of the code follows here unrelated to the data / form
entry//////////
Application.ScreenUpdating = False
Direction = InputBox("Input DEST or ORIG")
Direction = UCase(Direction)


//////////////////////////////////////ORIGINAL POSTING
/////////////////////////////////////
Hi -
I am new to using 'custom dialog boxes'. I am trying to take some data


from my user form once I have hit the OK button on the userform and
bring those entries back to my main sub where I will use this data to
run the rest of my code. I am able to get the form working but the
userform inputs seem to be local to the code that I have for the form
but I haven't been able to get the variables back to my main code
section.


PS, My userform is in my personal.xls and I will be using the data to
affect a separate workbook.


Thanks,
Chet


Code I have so far....


'///////////////////////CODE IN THE
USERFORM///////////////////////////////////////
Private Sub CommandButton2_Click()


End Sub


Private Sub OKButton_Click_Click()
Msg = "You selected Item # "
Msg = Msg & ListBox1.ListIndex
Msg = Msg & vbCrLf
Msg = Msg & ListBox1.Value
LocID = ListBox1.Value
MsgBox Msg
Unload UserForm1
End Sub


'/////////////////MAIN PROGRAM CODE////////////////////////////////
Sub TOOLBAR_POSTAL_BYP_MIX_BREAKOUT_vsn2()


With UserForm1.ListBox1
.AddItem "SFO"
.AddItem "OAK"
.AddItem "SJC"
End With
With UserForm1.ListBox2
.AddItem "ORIG"
.AddItem "DEST"
End With
With UserForm1.ListBox3
.AddItem "Weekday"
.AddItem "Saturday"
.AddItem "Sunday"
End With


UserForm1.ListBox1.ListIndex = 0
UserForm1.Show


'the rest of the code follows here unrelated to the data / form
entry//////////
Application.ScreenUpdating = False
Direction = InputBox("Input DEST or ORIG")
Direction = UCase(Direction)
 
B

Bob Phillips

Create that variable in a standard code module perhaps?

--
HTH

Bob Phillips

(remove xxx from email address if mailing direct)
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top