[VB6] utilisation de Textbox dans un userform

Résolu
mortelrdv007 -  
 mortelrdv -
Bonjour,

je suis sous Excel 2003 SP2 en winXP.

je cherche à faire quelque chose de similaire à la fonction "InputBox" en userform.

j'ai fait mon userform qui s'appelle "usf_query"

sub test()
dim valeur as variant
usf_query.show
valeur = usf_query.textbox1.value

je n'arrive pas à récupérer la valeur du texbox1 !!
y aurait il un truc que je n'aurait pas compris sur les userform ?

pourtant avec le code ci-dessous
sub test()
dim valeur as variant
usf_query.textbox1.value = "TOTOTOTO"
usf_query.show
valeur = usf_query.textbox1.value

lors de l'affichage j'ai bien la valeur dans le textbox1 "TOTOTOTO", mais après la variable valeur ne contient pas "TOTOTOTO".

Merci de vos lumiere.

4 réponses

Fallentree Messages postés 2309 Date d'inscription   Statut Membre Dernière intervention   209
 
Ta variable ne semble pas Global.
Rejout un msgbox juste apres l affectation pour voir si c est vraiement la cas.
Dans ce cas, Il faut la passer la "Valeur" par reference.. non pas par valeur ...
Je suis sur que c est ca ...
0
mortelrdv007
 
Donc si je comprends bien le sous-entendu par ta remarque, userform ~ fonction et que les variables sont perdues dès que l'userform se ferme.
Je dois donc utiliser une variable globale dans l'userform pour récupérer les info que je veux !!
0
lermite222 Messages postés 8724 Date d'inscription   Statut Contributeur Dernière intervention   1 191
 
Bonjour,
Tu ne suis pas bien le cheminement de l'userform..
sub test() 
dim valeur as variant 
'Ici tu ouvre implicitement l'UF (load) et tu assigne la variable au TextBox.. OK 
usf_query.textbox1.value = "TOTOTOTO" 
' 
'Ici tu "montre" l'UF.. OK 
usf_query.show 

'Pour arriver ici tu doit avoir fermer l'UF (cliquer sur la croix rouge) 
'Donc l'UF "N'EXISTE PLUS" 

ICI tu REOUVRE l'UF mais sans assigner de valeur au textbox, donc c'est vide ce qui est normal. 
valeur = usf_query.textbox1.value



Pour y remédier...
Dans l'UF tu met un bouton, par exemple QUITTER
dans le code du bouton tu met...
Me.Hide

et ta macro devient...
sub test() 
dim valeur as variant 
usf_query.textbox1.value = "TOTOTOTO" 
usf_query.show 
valeur = usf_query.textbox1.value 
Unload usf_query


A+
EDIT : Et pour ton info, ce n'est pas du VB6 mais du VBA, ce qui est différent.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
0
mortelrdv
 
Ok, merci de vos éclaircissement.
0