Excel/macro : boucle complexe !

Résolu/Fermé
Signaler
Messages postés
78
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
22 août 2010
-
Messages postés
78
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
22 août 2010
-
Bonjour,

Je suis en train de faire une macro sous Excel 2007.

Je suis à la recherche d'une solution pour pouvoir faire une boucle un peu tordue, où le compteur est utilisé pour passer d'un contôle à l'autre :
        UserForm1.lbl_enf__1__.Visible = True
        UserForm1.lbl_enf__2__.Visible = True
        UserForm1.lbl_enf__3__.Visible = True
        ...


ou encore

        UserForm1.txt_enf__1___prenom.Value = Cells(i, col_enf__1___prenom)
        UserForm1.txt_enf__2___prenom.Value = Cells(i, col_enf__2___prenom)
        UserForm1.txt_enf__3___prenom.Value = Cells(i, col_enf__3___prenom)


Auriez-vous avez une idée ?

1 réponse

Messages postés
579
Date d'inscription
mardi 10 août 2010
Statut
Membre
Dernière intervention
11 novembre 2018
314
Bonjour,

Peut-être ainsi :

Dim I As Byte
For I = 1 To 3
    With UserForm1
        .Controls("lbl_enf__" & I & "__").Visible = True
        ' et si la colonne des prénoms est la colonne "C"
        ' ainsi que les prénoms commencent en ligne 2
        .Controls("txt_enf__" & I & "___prenom").Value = Cells(I + 1, 3)
    End With
Next I


Peut-être....
1
Messages postés
78
Date d'inscription
lundi 25 juillet 2005
Statut
Membre
Dernière intervention
22 août 2010
10
PARFAIT !! merci beaucoup cousinhub29

Enfin, dans le Cells, mettre quelque chose comme
.Controls("txt_enf" & i & "_prenom").Value = Cells(i, "col_enf" & i & "_prenom")

ne fonctionne pas, même si col_enf1_prenom est bien déclaré comme un entier. Mais, je me suis arrangé pour ne plus avoir besoin de composer le nom de la variable avec le compteur.
0