Tout cocher/décocher les cases à cocher. [Résolu/Fermé]

Signaler
-
Messages postés
8212
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
22 octobre 2020
-
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

Messages postés
8212
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
22 octobre 2020
1 498
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

Ca ne marche pas ...
Messages postés
8212
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
22 octobre 2020
1 498
Il faut affecter la macro à la case à cocher maître (de formulaire, pas activeX).
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")
Messages postés
8212
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
22 octobre 2020
1 498
Messages postés
8212
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
22 octobre 2020
1 498
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")
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
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..
Messages postés
12186
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
15 octobre 2020
2 497
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
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...
Messages postés
8212
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
22 octobre 2020
1 498
La principale différence c'est la gestion événementielle.