Tout cocher/décocher les cases à cocher.

Résolu
dadou -  
Patrice33740 Messages postés 8561 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

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
dadou
 
Ca ne marche pas ...
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Il faut affecter la macro à la case à cocher maître (de formulaire, pas activeX).
0
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
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
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
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
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
pijaku Messages postés 12263 Date d'inscription   Statut Modérateur Dernière intervention   2 761
 
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
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
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
La principale différence c'est la gestion événementielle.
0