Afficher et masquer des colonnes avec checkbox

Résolu
Nai Messages postés 712 Date d'inscription   Statut Membre Dernière intervention   -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonsoir la communauté ^^
Je cherche à afficher et masquer des colonnes avec Checkbox.
Private Sub CheckBox1_Click()
If CheckBox1 = True Then
    Sheets("Prévisionnel").Columns("H:V").EntireColumn.Hidden = False
Else
    Sheets("Prévisionnel").Columns("H:V").EntireColumn.Hidden = True
End If
End Sub

Ça ne fonctionne pas :/
Pouvez-vous m'expliquer d'où vient l'erreur (ou proposer un autre moyen de cacher des zones?)
J'ai besoin de masquer/afficher les semaines1, 2, 3 et/ou 4 ^^
https://www.cjoint.com/c/FItsbBnZjJO



--
Bien à vous,
Naï
ps: je surveille tous mes sujets non résolus, si solution vous avez, je la lirais à coup sûr :)

1 réponse

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour,

    Tu tiens vraiment à protéger ton classeur contre toute intervention non souhaitée des utilisateurs, c'est ton droit.
    Tu as bien protégé et donc toi non plus tu ne peux pas modifier ton classeur par macro.
    Je pense que tu vas trouver le remède. ;-)
    1
    1. Nai Messages postés 712 Date d'inscription   Statut Membre Dernière intervention   57
       
      Merci pour ton message !
      C'est tout bête en effet. J'ôte la protection au clic et la remet à la fin de la macro.
      Ça fonctionne, mais bizarrement : https://www.cjoint.com/c/FIuqqn2bqVR
      Il semble y avoir un ordre d'affichage et de masquage :O
      Par exemple : impossible de masquer la semaine 2 si la semaine 1 n'est pas masquée.
      Private Sub CheckBox1_Click()
      ActiveSheet.Unprotect "alsh"
      If CheckBox1 = True Then
          Sheets("Prévisionnel").Columns("H:V").EntireColumn.Hidden = False
      Else
          Sheets("Prévisionnel").Columns("H:V").EntireColumn.Hidden = True
      End If
      ActiveSheet.Protect "alsh", DrawingObjects:=True, Contents:=True, Scenarios:=True _
              , AllowInsertingColumns:=True, AllowInsertingRows:=True, _
              AllowInsertingHyperlinks:=True
      End Sub
      
      Private Sub CheckBox2_Click()
      ActiveSheet.Unprotect "alsh"
      If CheckBox1 = True Then
          Sheets("Prévisionnel").Columns("W:AK").EntireColumn.Hidden = False
      Else
          Sheets("Prévisionnel").Columns("W:AK").EntireColumn.Hidden = True
      End If
      ActiveSheet.Protect "alsh", DrawingObjects:=True, Contents:=True, Scenarios:=True _
              , AllowInsertingColumns:=True, AllowInsertingRows:=True, _
              AllowInsertingHyperlinks:=True
      End Sub
      

      Une idée ? ^^
      Merci encore :)
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744 > Nai Messages postés 712 Date d'inscription   Statut Membre Dernière intervention  
       
      Bonsoir,
      C'est tout bête en effet.. J'ai bien l'impression que là aussi c'est tout bête : lorsque l'on copie "CheckBox1_Click" dans "CheckBox2_Click" il faudrait peut-être tester celui qui est cliqué et non l'autre. ;-)
      0
    3. Nai Messages postés 712 Date d'inscription   Statut Membre Dernière intervention   57
       
      Je n'ai pas bien compris.
      Je vois que la formule du checkbox2 mentionne checkbox1. Je ne comprend pas comment le modifier.
      "Désolé... Nous avons rencontré un problème avec cette formule : nous n'avons pas trouvé de référence de plage ou de nom défini."
      Kézako ?
      0
    4. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Quand tu cliques le 2 tu testait le 1 il faut tester le 2 CheckBox2
      Private Sub CheckBox2_Click()
      ActiveSheet.Unprotect "alsh"
      If CheckBox2 = True Then

      Tu peux même simplifier ainsi :
      Private Sub CheckBox2_Click()
      ActiveSheet.Unprotect "alsh"
      If CheckBox2 Then
      0
    5. Nai Messages postés 712 Date d'inscription   Statut Membre Dernière intervention   57
       
      Oh ! Quelle nouille ! Problème évidemment résolu. J'ai pu faire les deux autres semaines.
      Je suis désolé mais te remercie vivement !
      0