[VB6] utilisation de Textbox dans un userform

Résolu/Fermé
mortelrdv007 - 19 oct. 2010 à 11:09
 mortelrdv - 19 oct. 2010 à 17:55
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 mercredi 25 février 2009 Statut Membre Dernière intervention 22 juillet 2019 208
19 oct. 2010 à 11:27
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
19 oct. 2010 à 11:48
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 8702 Date d'inscription dimanche 8 avril 2007 Statut Contributeur Dernière intervention 22 janvier 2020 1 190
Modifié par lermite222 le 19/10/2010 à 13:28
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
Ok, merci de vos éclaircissement.
0