Solved

pass data from a userform to a userform word vba

Posted on 2010-09-03
7
912 Views
Last Modified: 2012-08-14
I have a userform that gathers configuration data from the user. When the OK button is clicked, a subroutine in the userform module goes through each textbox in order and does a variety of calculations and assignments. There are 3 textboxes that if they have content in them,  I need to gather some more specific data. To do this I pop up a second userform.  When the OK button on that form is clicked, I want to return a value to the original calling userform subroutine.

How do I return the value (let's call it price) so that I can incorporate it into my calculations?

0
Comment
Question by:karimjohnson
  • 4
  • 3
7 Comments
 
LVL 59

Expert Comment

by:Chris Bottomley
Comment Utility
Casll the second form from the first BUT when clicking the second button HIDE the second form:

Private Sub CommandButton1_Click()
    Me.Hide
End Sub

Processing returns to your first userform and the data is displayed and in the outline below the form is redisplayed but of course you can use the data and store it somewhere ending with an unloaf of userform1 if required.

Chris
Private Sub CommandButton1_Click()

    Me.Hide

    Load UserForm2

    UserForm2.Show

    Me.TextBox1 = UserForm2.TextBox1.Text

    Unload UserForm2

    Me.Show

End Sub

Open in new window

0
 

Author Comment

by:karimjohnson
Comment Utility
If I understand correctly, this assumes I am passing the value of a userform field in userform2 back to a userform field in userform1. Is there a way to pass a calculated value from userform2 (for example, listbox1*listbox2) back to a variable set in the module associated with userform1 (rather than a form field)? Otherwise, I think I will have to create hidden fields for the return values (since they are not part of what I want the user to see).
0
 
LVL 59

Expert Comment

by:Chris Bottomley
Comment Utility
Any data from userform2 is passed back to userform1 by such a mechanism whether userform1 does the calculation on teh data or whether userform2 does the calculation and it's made available to userform1.

Chris
0
Top 6 Sources for Identifying Threat Actor TTPs

Understanding your enemy is essential. These six sources will help you identify the most popular threat actor tactics, techniques, and procedures (TTPs).

 

Author Comment

by:karimjohnson
Comment Utility
so I could modify it like so?

Sub cmdOK_Click()
[other code here...]

    Me.Hide
    Load UserForm2
    UserForm2.Show
    Me.CalculatedPrice= UserForm2.CalculatedPrice 'where calculated price is listbox1 * listbox2 after OK
    Unload UserForm2
    Me.Show
End Sub
0
 
LVL 59

Expert Comment

by:Chris Bottomley
Comment Utility
INdeed.

Chris
0
 

Author Comment

by:karimjohnson
Comment Utility
ok, i'm close. can you look at this file and see why the variables are not accessible to the Userform1 subroutine cmdOK_click? I'm sure it is something simple.
Doc3.doc
0
 
LVL 59

Accepted Solution

by:
Chris Bottomley earned 500 total points
Comment Utility
variables scoped to the checkbox routine are not available to the ok sub.

I redeclare them here as global and therefore it works:

Chris
Public price As String

Public license As String



Public Sub CheckBox1_Click()



    Load UserForm2

    UserForm2.Show

    price = UserForm2.TextBox1.Text

    license = UserForm2.TextBox2.Text

    Unload UserForm2



MsgBox prompt:="Price: " & price, buttons:=vbOKOnly

MsgBox prompt:="License: " & license, buttons:=vbOKOnly



End Sub



Public Sub cmdOK_Click()



MsgBox prompt:="Price: " & price, buttons:=vbOKOnly

MsgBox prompt:="License: " & license, buttons:=vbOKOnly



Unload Me

End Sub



Private Sub cmdCancel_Click()

Unload Me

End Sub



Private Sub UserForm_Click()



End Sub

Open in new window

0

Featured Post

Free Trending Threat Insights Every Day

Enhance your security with threat intelligence from the web. Get trending threat insights on hackers, exploits, and suspicious IP addresses delivered to your inbox with our free Cyber Daily.

Join & Write a Comment

Microsoft Word is a program we have all encountered at some point, but very few of us have dug deep into its full scope of features, let alone customized it to suit our needs. Luckily making the ribbon (aka toolbar, first introduced in Word 2007) wo…
User Beware!  This is a rather permanent solution to removing your email from an exchange server.  The only way to truly go back is to have your exchange administrator restore your mailbox from backups.  This is usually the option of last resort.  A…
This video shows the viewer how to set up and create Footnotes in their document. Click on the References tab: Select "Insert Footnote": Type in desired text:
This video walks the viewer through the process of creating envelopes and labels, with multiple names and addresses. Navigate to the “Start Mail Merge” button in the Mailings tab: Follow the step-by-step process until asked to find the address doc…

772 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

10 Experts available now in Live!

Get 1:1 Help Now