ptij
Messages postés13Date d'inscriptionlundi 8 avril 2002StatutMembreDernière intervention 6 octobre 2003
-
23 juil. 2003 à 12:00
belay04
Messages postés2Date d'inscriptionmercredi 12 mai 2004StatutMembreDerniè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 ???
guiguizz
Messages postés9Date d'inscriptionmardi 15 avril 2003StatutMembreDernière intervention25 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
belay04
Messages postés2Date d'inscriptionmercredi 12 mai 2004StatutMembreDerniè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 ;) !!! "