Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Sélection/désélection cases à cocher

Amilo

XLDnaute Accro
Bonjour à tous,

J'ai intégré en cellule E5 une case à cocher de type "Contrôle de formulaire" et en cellules E8:E14 des cases à cocher via Insertion>Objet (Wingdings),
Pour ces dernières de E8:E14, j'ai utilisé du code VBA que j'ai inséré en feuil1 et un code en module1 pour la case à cocher en E5

Cependant, je rencontre les 2 problèmes ci-dessous :

- lorsque je coche/décoche une des cases en E8:E14, il faut que je clique dans une autre cellule si je veux à nouveau cocher/décocher la case :
Comment modifier le code pour cocher/décocher tout en restant dans la cellule active ?

- Concernant mon 2ème problème, j'ai un message d'erreur lorsque je souhaite utiliser la case à cocher de la cellule E5 pour tout sélectionner/désélectionner

J'ai mis également en G5 une case à cocher de même type que les cases E8:E14.
Si cela est plus facile, je souhaiterais plutôt utiliser ce type en lieu et place de E5

Edit : l'autre problème pour les cases à cocher en E8:E14 est une fois avoir coché/décoché une de mes cases et que je fais Entrée, la case du dessous se modifie également !!

En vous remerciant par avance pour votre aide

Cordialement
 

Pièces jointes

  • Cases à cocher.xlsm
    19.7 KB · Affichages: 15
Dernière édition:
Solution

Amilo

XLDnaute Accro
Re,

Staple1600, merci pour votre retour,
Cela fonctionne lorsque j'exécute individuellement les 2 codes "test I" et "test II" depuis l'éditeur VB

Mais comment associer le 3ème code "Sub Cochez" à une des cases à cocher ?
Est-ce que ce code exécute alternativement les 2 autres ?

Je vous mets sinon un fichier test si vous voulez bien vérifier.

Merci d'avance
 

Pièces jointes

  • Test Cases à cocher.xlsm
    23.5 KB · Affichages: 6

Staple1600

XLDnaute Barbatruc
Re

Sub Cochez(statut As Boolean) est une macro "paramétrée"
Elle doit être appelée à partir d'une autre macro.
Dans mon exemple, ce sont Test_I et Test_II qui l'utilise
Quand le paramètre sur True -< on coche les CheckBoxes
Quand le paramètre sur False-< on décoche les CheckBoxes

PS: J'a renommé les macros dans mon exemple.
Est-ce plus parlant ainsi?
 

Amilo

XLDnaute Accro
Re,
Merci pour cette précision,
Là où je veux en venir, c'est que je ne sais pas comment faire fonctionner à partir d'une case à cocher pour sélectionner/désélectionner toutes les autres cases.

La seule solution que je vois, c'est d'ajouter 2 boutons de commande : chacun pointant sur un des 2 codes.
J'ai mis le fichier pour démonstration.

Merci d'avance
 

Pièces jointes

  • Test Cases à cocher.xlsm
    24.8 KB · Affichages: 8

Staple1600

XLDnaute Barbatruc
Re

On peut faire comme ceci
1) Nommer un CheckBox (ActiveX)
Ici je renommé le CheckBox1 en TITI
(En Mode création -> Clic-droit->Propriétés-> Changer la valeur dans Name
2) Mettre ce code dans la feuille (et pas dans un module standard)
VB:
Private Sub TITI_Click()
Cochez Me.TITI
End Sub
Private Sub Cochez(statut As Boolean)
Dim c As Object
With ActiveSheet
    .CheckBoxes.Value = statut
    For Each c In .OLEObjects
        If TypeName(c.Object) = "CheckBox" Then
            If Not c.Name = "TITI" Then
            c.Object.Value = statut
        End If
    End If
    Next c
End With
End Sub
NB: Attention, Il faut supprimer le code déjà présent.
Test OK sur ton fichier Exemple.
 

Amilo

XLDnaute Accro
Re,
Merci Staple1600, ce dernier code fonctionne très bien avec un activex,
Vos différentes réponses me seront toujours utiles, j'aurais appris un peu plus sur les cases à cocher.
Merci encore à vous tous

Cordialement
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…