Bonjour,

J'ai un userform qui contient 10 checkbox que l'utilisateur peut cocher indépendemment les uns des autres.
A chaque changement d'état d'une checkbox, un textbox invisible devient visible à côté du checkbox pour que l'utilisateur y rentre une valeur.

Pour remplacer mon code à rallonge ci-après j'ai tenté plusieurs solutions pour créer une boucle afin de réduire ce code, mais aucune solution que j'ai essyée n'a fonctionné.
Le mieux que j'aie trouvé qui fonctionne c'est d'appeler une fonction, mais je pense qu'il y a plus simple... donc si quelqu'un a une piste...

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Private Sub Condi1_Click()
Num = 1
CondiEvenement Num
End Sub
Private Sub Condi2_Click()
Num = 2
CondiEvenement Num
End Sub
 
'...
'...
'...
 
Private Sub Condi9_Click()
Num = 9
CondiEvenement Num
End Sub
Private Sub Condi10_Click()
Num = 10
CondiEvenement Num
End Sub
Et la fonction

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
Private Sub CondiEvenement(ByRef Num As Byte)
        If Me.Controls("Condi" & Num).Value = True Then
            Me.Controls("QteCondi" & Num).Visible = True
            Me.Controls("QteCondi" & Num).SetFocus
        Else
            Me.Controls("QteCondi" & Num).Visible = False
            Me.Controls("QteCondi" & Num).Value = ""
        End If
 
End Sub