Initialiser des checkboxes UserForm1_Initialize

Bonjour,

je me passionne pour le VBA depuis peu et bloque sur un problème.

Je développe un applicatif qui permet de gérer l'affichage de colonnes sur Excel à l'aide de checkbox. La checkbox1 gère l'affichage de la colonne A, la checkbox2 la colonne B et ainsi de suite...

Mon problème est que lorsque je réouvre mon userform, je n'arrive pas à l'initialiser. Je m'explique, lorsqu'une colonne est affichée, la checkbox correspondante devrait être cochée au lancement de l'userform.

J'aimerais savoir si j'ai fait une erreur sur la première parti du code. Et si oui, avoir des explication sur mon erreur. Merci

Voici mon code:

Private Sub UserForm1_Initialize() 'Cocher si la colonne est affichée
    If Columns("A").Hidden = False Then
    CheckBox1.Value = True
    End If

    If Columns("B:D").Hidden = False Then
    CheckBox3.Value = True
    End If
End Sub

Private Sub CheckBox1_Click()
 If CheckBox1.Value = True Then 'Si coché ...
        Columns("A").Hidden = False
    Else 'Si non coché ...
        Columns("A").Hidden = True
    End If
End Sub

Private Sub CheckBox3_Click()
 If CheckBox3.Value = True Then 'Si coché ...
        Columns("B:D").Hidden = False
    Else 'Si non coché ...
        Columns("B:D").Hidden = True
    End If
End Sub

Et voici mon fichier

54probleme.xlsm (21.70 Ko)

N'hésitez pas à me redemander des précisions car je suis novice et c'est la première fois que je post un message sur ce forum.

En vous remerciant de m'aider

Karl

Bonsoir

Même si ton Userform s'appelle Mon_Userform_A_Moi, la macro qui initialise cet Userform sera toujours

Private Sub UserForm_Initialize()

Enlèves le 1 après Userform

Bonjour,

La remarque de Banzaï est la bonne

Si tu modifie la valeur du checkBox l’évènement Clic est appeler

Pour simplifier un peu, Essaye..

Dim OffAction as Boolean

Private Sub UserForm_Initialize() 'Cocher si la colonne est affichée
    OffAction  = True
    CheckBox1.Value = Not Columns("A").Hidden
    CheckBox3.Value = not Columns("B:D").Hidden
    OffAction  = False
End Sub

Private Sub CheckBox1_Click()
   If OffAction then Exit Sub
   Columns("A").Hidden = Not  CheckBox1.Value
End Sub

Private Sub CheckBox3_Click()
   If OffAction then Exit Sub
   Columns("B:D").Hidden = Not CheckBox3.Value 
End Sub

Si tu veux faire le contraire enlève les "Not"

Le code est tester et fonctionne.

Le OffAction n'est pas indispensable dans ce cas.

A+

Merci à vous deux c'est parfait.

Je suis impressionné de la rapidité à laquelle j'ai obtenu une réponse et je dirais même plus, une solution plus efficace.

Encore merci.

Rechercher des sujets similaires à "initialiser checkboxes userform1 initialize"