Tout cocher/décocher les cases à cocher.

Résolu
dadou -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une 50aine de cases à cocher, je voudrais créer une case à cocher qui coche toutes mes cases quand celle-ci est cochée et décoche ces mêmes cases quand elle est décochée.

J'ai fait quelques recherches j'ai trouver ce code mais je n'arrive pas a mettre 2 codes en meme temps...

Sub coche_tout() 
For Each coche In ActiveSheet.Shapes 
If coche.Name Like "Check*" Then coche.ControlFormat.Value = True 
Next coche 
End Sub 

Sub decoche_tout() 
For Each coche In ActiveSheet.Shapes 
If coche.Name Like "Check*" Then coche.ControlFormat.Value = False 
Next coche 
End Sub


Merci de votre aide !

3 réponses

  1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    Bonjour,

    Essaies (en adaptant le nom du chekbox maître) :
    Sub coche_decoche_tout()
    Dim chk As Shape
      Set chk = Shapes("CHECK BOX 1")
      For Each coche In ActiveSheet.Shapes
        If coche.Name Like "Check*" Then
          coche.ControlFormat.Value = chk.ControlFormat.Value
        End If
      Next coche
    End Sub

    0
  2. dadou
     
    Ca ne marche pas ...
    0
    1. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Il faut affecter la macro à la case à cocher maître (de formulaire, pas activeX).
      0
    2. dadou
       
      Oui j'ai bien remplacer mais ca m'affiche : "Erreur de compilation Sub ou Function non définie"
      En me surlignant "Shapes" de cette ligne : Set chk = Shapes("CHECK BOX 1")
      0
    3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      Si ton code n'est pas dans le module de feuille mais dans un module ordinaire, il faut écrire :
       Set chk = ActiveSheet.Shapes("CHECK BOX 1")
      0
    4. dadou
       
      Merci j'ai bien reçu votre fichier ca marche niquel mais impossible sur mon fichier : Impossible d'executer le code en mode arrêt
      0
  3. dadou
     
    J'ai trouver ce code pour cocher toutes mes cases :
    Sub Caseàcocher105_Clic()
        [A158:A250] = True
    End Sub


    Comment faire pour que ce soit l'inverse pour décocher la même case sans en créer une nouvelle ?

    ps: l'autre formule avec ne marche pas je sais pas pourquoi..
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Salut,

      Supposons que ta case à cocher qui coche tout et décoche tout soit liée à la cellule B1, ton code devient :
      Sub Caseàcocher105_Clic()
          [A158:A250] = [B1]
      End Sub
      0
    2. dadou
       
      Parfait ça fonctionne !
      Je commençais à me dire qu'il fallait que je passe peut être par des case à cocher ActiveX mais je vois pas trop la différence...
      0
    3. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      La principale différence c'est la gestion événementielle.
      0