Probleme boucle de textbox en vba

ptij Messages postés 13 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 6 octobre 2003 - 23 juil. 2003 à 12:00
belay04 Messages postés 2 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 2 avril 2023 - 11 janv. 2005 à 00:01
Je suis sur un formulaire VBA pour une feuille Excel, et lorsque tous les textbox de ce formulaire sont remplis, je dois les insérer dans ma feuille Excel qui va bien. Le problème c'est qu'il y a 60 textbox, et je voudrais faire une boucle.
En VB je sais faire, avec textbox(i) etc... mais la, ca veut pas marcher, est ce que quelqu'un sait ???

Merci %-6

3 réponses

guiguizz Messages postés 9 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 25 juillet 2003
23 juil. 2003 à 15:04
Effectivement tu ne peux pas te servir des index car cela ne fonctionne pas sur les frames Excel.
La solution est de parcourir les controles de la form comme suit :

Dim MyControl as Control
For Each MyControl in UserForm1.controls
if TypeOf MyControl Is TextBox Then
'Instruction à faire quand le control est un TextBox
'Tu peux utiliser Mycontrol.name pour pouvoir identifier tes controles
End If
Next MyControl

J'ai déja utilisé ça précédemment et ça fonctionne pas mal

Si tu veux des précisions...

Guill
0
ptij Messages postés 13 Date d'inscription lundi 8 avril 2002 Statut Membre Dernière intervention 6 octobre 2003
24 juil. 2003 à 11:04
Merci beaucoup, ca passe bien comme ca!!!
0
belay04 Messages postés 2 Date d'inscription mercredi 12 mai 2004 Statut Membre Dernière intervention 2 avril 2023
11 janv. 2005 à 00:01
Bon d'abord merci guiguizz pour son morceau de code qui m'evite du
bricolage à la noix sur les "name" des textbox...... Simplement, si on
veut pas utiliser les propriétes des textbox (première options que tu
decrit) il me semble qu'il est necessaire d'ajouter un
"msforms.textbox" ds la condition du IF ce qui donne un code du style :



> Dim MyControl as Control
> For Each MyControl in UserForm1.controls
> if TypeOf MyControl Is MSFORMS.TextBox Then
> 'Instruction à faire quand le control est un TextBox
> End If
> Next MyControl


Parce que sinon le resultat du IF est toujours FAUX ... ;)

++




"Le VBA c amusant, mais heureusement qu'il y a les forums ;) !!! "
0
Rejoignez-nous