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
1
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
11 janvier 2005
- 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
1
Date d'inscription
mercredi 12 mai 2004
Statut
Membre
Dernière intervention
11 janvier 2005

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