filling userform textboxes

  • Thread starter Thread starter Pierre via OfficeKB.com
  • Start date Start date
P

Pierre via OfficeKB.com

Hi expert,

i user userform1 to retreive data from an excel sheet . The data should then
be visible in textboxes on userform1 that have no sourcecontrol.
My questions:

1. is it possible to write vba code to fill the textbox from the datasheet ?
I think yes, something like: txt_myname.text = sheets("datasheet").
range("A3").value
is this the correct way ?

2. is it possible to make a seperate module with vba code to fill textboxes
on userform1
I think yes but don't know how...can you help

3. is it possible to use vba code in a different userform2 to fill textboxes
in userform1 ?
I think no, but can you help if it is possible ?

Thanks for looking at my problem.
Pierre
 
The answer to all three question is yes.

1. exactly

2. but why would you want to; you can do the same with the code in the
userform module. If you choose that path, you would call code in this
module from the code in the Userform module.
You would need to fully qualify your references like
Userform1.Txt_Myname.txt = . . .

3. As long as userform1 is loaded (doesn't necessarily have to be visible),
then any code can set the value of a control in userform1 including code in
userform2. You just have to use the fully qualified reference as shown
above.
 
A slight qualification.

It is not unusual to have initialization code in a general module. This is
a matter of style. (the other choice would be the initialize event for the
userform).

Sub MycodeInAGeneralModule()
Dim rng as Range
set rng = Worksheets("Datasheets").Range("A3")
With Userform1
.txt_myname.txt = rng.value
.txt_myaddress.txt = rng.offset(1,0).value
.txt_mycity.txt = rng.offset(2,0).value
.show
End With
End Sub

the alternative would be
Sub MycodeInAGeneralModule()
Userform1.Show
End With

in the userform module

Private Sub Userform_Intialize()
Dim rng as Range
set rng = Worksheets("Datasheets").Range("A3")
me.txt_myname.txt = rng.value
me.txt_myaddress.txt = rng.offset(1,0).value
me.txt_mycity.txt = rng.offset(2,0).value
End Sub
 
Thanks Tom,

you're the greatest !!!!
option 2 works perfectly for me !!!
I had forgotten to fully mention the path !
thanks again !
Pierre

Tom said:
The answer to all three question is yes.

1. exactly

2. but why would you want to; you can do the same with the code in the
userform module. If you choose that path, you would call code in this
module from the code in the Userform module.
You would need to fully qualify your references like
Userform1.Txt_Myname.txt = . . .

3. As long as userform1 is loaded (doesn't necessarily have to be visible),
then any code can set the value of a control in userform1 including code in
userform2. You just have to use the fully qualified reference as shown
above.
Hi expert,
[quoted text clipped - 17 lines]
Thanks for looking at my problem.
Pierre
 

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

Back
Top