Variable dans le nom d'un champ userform
Hello tout le monde!
C'est moi qui vais poser une question cette fois-ci
J'ai un soucis de simplification de code dans un des mes userform.
Je voudrais savoir s'il était possible d'inclure une variable dans le nom d'un champ userform
genre:
nom_du_champ & i & .Visible = True
Le but étant de rendre visible des champs en fonction de la valeur d'une combobox.
Mon code initial c'est:
Private Sub Nombre_user_Change()
If Nombre_user.Value > 0 Then
User1.Visible = True
Nom1_lbl.Visible = True
Nom1.Visible = True
Prenom1_lbl.Visible = True
Prenom1.Visible = True
ID1_lbl.Visible = True
ID1.Visible = True
Mail1_lbl.Visible = True
Mail1.Visible = True
End If
If Nombre_user.Value > 1 Then
User2.Visible = True
Nom2_lbl.Visible = True
Nom2.Visible = True
Prenom2_lbl.Visible = True
Prenom2.Visible = True
ID2_lbl.Visible = True
ID2.Visible = True
Mail2_lbl.Visible = True
Mail2.Visible = True
End If
If Nombre_user.Value > 2 Then
User3.Visible = True
Nom3_lbl.Visible = True
Nom3.Visible = True
Prenom3_lbl.Visible = True
Prenom3.Visible = True
ID3_lbl.Visible = True
ID3.Visible = True
Mail3_lbl.Visible = True
Mail3.Visible = True
End If
If Nombre_user.Value > 3 Then
User4.Visible = True
Nom4_lbl.Visible = True
Nom4.Visible = True
Prenom4_lbl.Visible = True
Prenom4.Visible = True
ID4_lbl.Visible = True
ID4.Visible = True
Mail4_lbl.Visible = True
Mail4.Visible = True
End If
If Nombre_user.Value > 4 Then
User5.Visible = True
Nom5_lbl.Visible = True
Nom5.Visible = True
Prenom5_lbl.Visible = True
Prenom5.Visible = True
ID5_lbl.Visible = True
ID5.Visible = True
Mail5_lbl.Visible = True
Mail5.Visible = True
End If
If Nombre_user.Value > 5 Then
User6.Visible = True
Nom6_lbl.Visible = True
Nom6.Visible = True
Prenom6_lbl.Visible = True
Prenom6.Visible = True
ID6_lbl.Visible = True
ID6.Visible = True
Mail6_lbl.Visible = True
Mail6.Visible = True
End If
If Nombre_user.Value > 6 Then
User7.Visible = True
Nom7_lbl.Visible = True
Nom7.Visible = True
Prenom7_lbl.Visible = True
Prenom7.Visible = True
ID7_lbl.Visible = True
ID7.Visible = True
Mail7_lbl.Visible = True
Mail7.Visible = True
End If
If Nombre_user.Value > 7 Then
User7.Visible = True
Nom7_lbl.Visible = True
Nom7.Visible = True
Prenom7_lbl.Visible = True
Prenom7.Visible = True
ID7_lbl.Visible = True
ID7.Visible = True
Mail7_lbl.Visible = True
Mail7.Visible = True
End If
End Sub
Je trouve ça trop long et j'ai 10 utilisateurs ça va faire beaucoup de lignes de code.
Une idée?
f
Bonjour,
Tu peux utiliser CONTROLS
Exemple
For i = 1 To Nombre_user.Value
Controls("Nom" & i & "_lbl").Visible = True
Controls("Nom" & i).Visible = True
Next i
A+
Ca fonctionne nickel comme ça!
Merci beaucoup c'est beaucoup plus propre maintenant!!