Plusieurs checkbox dans userform

Bonjour à tous,

J'ai créé un userform dans lequel des checkbox si elles sont cochées affichent ou pas des textbox.1 checkbox = 1 textbox.

Mais je dois pour chaque checkbox rentrer le même code, j'en possède environ 50. Je voudrais donc pour cela raccourcir mon code.

Faire pour cela une boucle???

Si vous avez une solution, je vous remercie d'avance.

cordialement,

Bouddha62

Bonjour,

Avec un module de classe nommé Classe1 (nom par défaut).

Je suis parti du principe que ton UserForm s'appelle "UserForm1", que tes CheckBox sont nommées "CheckBox1", "CheckBox2", "CheckBox3", etc... Il en est de même pour les TextBox ("TextBox1", "TextBox2", "TextBox3", etc...) et que ces derniers correspondent au CheckBox, CheckBox1 pour TextBox1 et ainsi de suite. Si ce n'est pas le cas, ça sera un peu plus compliqué.

Code à mettre dans le module de l'UserForm :

Dim Chk() As New Classe1

Private Sub UserForm_Initialize()

    Dim Ctrl As Control
    Dim I As Integer

    For Each Ctrl In Me.Controls

        If TypeName(Ctrl) = "CheckBox" Then

            I = I + 1
            ReDim Preserve Chk(1 To I)

            Ctrl.Tag = "TextBox" & Right(Ctrl.Name, Len(Ctrl.Name) - InStr(Ctrl.Name, "x"))
            Set Chk(I).GroupeChk = Ctrl

        End If

    Next Ctrl

End Sub

Code à mettre dans le module de classe :

Public WithEvents GroupeChk As MSForms.CheckBox

Private Sub GroupeChk_Click()

    'adapter le nom de la Form !
    UserForm1.Controls(GroupeChk.Tag).Visible = GroupeChk.Value

End Sub

Je viens de prendre connaissance de ton message et te remercie d'avoir répondu. Je prends note et m'y attelle demain. Merci à toi

Rechercher des sujets similaires à "checkbox userform"