How to get variables from worksheet code to userform code

D

Donny

In my worksheet, I have buttons to run macros, and I also have a
UserForm. In the worksheet code I have:

Dim Money as Double

Private Sub StartButton_Click()
Money = 100
End Sub

Then, in the UserForm code:

Dim StoreMoney as Double

'--I have macros that set the value of StoreMoney

Private Sub BuyStuff_Click()
If Money >= StoreMoney Then
Money = Money - StoreMoney
Sheet1.Range("E9") = Money
Else: OK = MsgBox("You don't have enough money!", vbOKOnly, "Not
enough cash!")
End If
End Sub


The problem is that the userform does not know that Money=100, so it
just set's it at zero. How can I tell the userform code to use the
variable from the worksheet code?

Thanks,
Chris
 
D

Donny

Made these changes, unfortunately still won't work.

'Worksheet code--------------

Public Money As Double

Sub StartButton_Click()
Money = 100
End Sub

'Worksheet code--------------

'Userform code--------------------

Public StoreMoney As Double

Sub UserForm_Initialize()
StoreMoney = 0
StoreText = "$" & StoreMoney 'This shows $0 in the Userform text box
End Sub

'Macro that sets the value of StoreMoney to 75

Sub BuyStuff_Click()
MsgBox (Money)
MsgBox (StoreMoney)
If Money >= StoreMoney Then
Money = Money - StoreMoney
Sheet1.Range("E9") = Money
Else: OK = MsgBox("You don't have enough money!", vbOKOnly, "Not
enough cash!")
End If
End Sub

'Userform code--------------------

I get three MsgBoxs:
Blank
75
You don't have enough money!

Money variable is still not availible to the userform macro.
In the Userform (general) I wrote: Public Money As Double
This just gives a 0 in the first MsgBox.

Any ideas?
 
J

JLGWhiz

It worked for me.

I put Public Money As Double at the top of Module2 then this code.

Sub mony()
Money = 100
UserForm1.Show
End Sub

I created a UserForm1 with a TextBox1 with this code behind the form.

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
MsgBox "$" & TextBox1.Text
End Sub


Private Sub UserForm_Initialize()
TextBox1.Text = Money
End Sub


The TextBox shows a text of 100 and when I exit the UserForm, which
simultaneously exits the TextBox, I get a message box with $100.
 
J

JLGWhiz

Public declaration should be made in the standard code module, not the sheet
module.
 
D

Donny

I also tried this, and I get a blank text box and a $ msgbox. :(
I must be declaring Public Money in the wrong place. I tried it in
ThisWorkbook and in Sheet1, same results when running Sheet1.mony()
and ThisWorkbook.mony()

The only place I see "modules" is under the Personal.xls, which I
don't want.

What could I be missing?
 
D

Donny

Public declaration should be made in the standard code module, not the sheet
module.

Got it - I guess i've never created a module to put variables or code
in.
That's next to learn. Thanks a bunch!
 

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