Accéder au contenu principal

Comment permettre la sélection d'une seule case à cocher dans un groupe dans Excel ?

Author: Siluvia Last Modified: 2025-05-27

Comme le montre la capture d'écran ci-dessous, pour un groupe de cases à cocher listées dans la ligne 2, lorsque vous sélectionnez ou cochez une case, toutes les autres sont automatiquement désactivées. Comment y parvenir ? Le code VBA de cet article peut vous aider.

A screenshot of a group of checkboxes in Excel where only one can be selected at a time

Activer la sélection d'une seule case à cocher avec du code VBA


Activer la sélection d'une seule case à cocher avec du code VBA

Vous pouvez exécuter les codes VBA ci-dessous pour ne sélectionner qu'une seule case à cocher dans un groupe à la fois. Veuillez procéder comme suit.

1. Tout d'abord, insérez les cases à cocher dont vous avez besoin. Ici, vous devez insérer des cases à cocher ActiveX Control comme le montre la capture d'écran suivante :

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Ensuite, appuyez simultanément sur les touches Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.

3. Dans la fenêtre Microsoft Visual Basic for Applications qui s'ouvre, cliquez sur Insertion > Module de classe.

A screenshot showing the option to insert a Class Module in Excel VBA

4. Changez le nom de la classe en ClsChk dans la zone (Nom) du panneau Propriétés, puis copiez et collez le code VBA ci-dessous dans la fenêtre Code correspondante. Voir la capture d'écran :

A screenshot of the Properties pane in VBA for renaming the class to ClsChk

Code VBA 1 : Sélectionner une seule case à cocher à la fois

Option Explicit
Public WithEvents Chk As MSForms.CheckBox
Private Sub Chk_Click()
Call SelOneCheckBox(Chk)
End Sub

Sub SelOneCheckBox(Target As Object)
Dim xObj As Object
Dim I As String
Dim n As Integer
If Target.Object.Value = True Then

    I = Right(Target.Name, Len(Target.Name) - 8)
    For n = 1 To ActiveSheet.OLEObjects.Count
      If n <> Int(I) Then
        Set xObj = ActiveSheet.OLEObjects.Item(n)
        xObj.Object.Value = False
        xObj.Object.Enabled = False
      End If
    Next
Else
    I = Right(Target.Name, Len(Target.Name) - 8)
    For n = 1 To ActiveSheet.OLEObjects.Count
      If n <> Int(I) Then
        Set xObj = ActiveSheet.OLEObjects.Item(n)
        xObj.Object.Enabled = True
      End If
    Next
End If
End Sub

5. Maintenant, cliquez sur Insertion > Module, puis copiez et collez le code VBA ci-dessous dans la fenêtre Module.

Code VBA 2 : Sélectionner une seule case à cocher à la fois

Dim xCollection As New Collection
Public Sub ClsChk_Init()
Dim xSht As Worksheet
Dim xObj As Object
Dim xChk As ClsChk
   Set xSht = ActiveSheet
   Set xCollection = Nothing
    For Each xObj In xSht.OLEObjects
        If xObj.Name Like "CheckBox**" Then
            Set xChk = New ClsChk
            Set xChk.Chk = CallByName(xSht, xObj.Name, VbGet)
            xCollection.Add xChk
        End If
    Next
    Set xChk = Nothing
End Sub

6. Appuyez sur la touche F5 pour exécuter le code.

Dès maintenant, lors de la vérification de l'une des cases à cocher dans la feuille de calcul, toutes les autres cases à cocher sont automatiquement désactivées, et vous pouvez la décocher pour réactiver toutes les cases à cocher.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

Remarque : Si une nouvelle case à cocher est ajoutée au groupe, veuillez réexécuter le code VBA pour réactiver toutes les cases à cocher. La suppression d'une case à cocher du groupe nécessite également de réexécuter le code.


Articles connexes :

Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionner l'analyse des données basée sur : Exécution intelligente   |  Générer du code  |  Créer des formules personnalisées  |  Analyser les données et générer des graphiques  |  Invoquer les Fonctions améliorées
Fonctionnalités populaires : Trouver, mise en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Consolider les colonnes ou les cellules sans perdre de données   |   Arrondir sans formule ...
Super RECHERCHEV : RECHERCHEV avec critères multiples    RECHERCHEV avec valeurs multiples  |   Recherche multi-feuilles   |   Correspondance floue ....
Liste déroulante avancée : Créer rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante multi-sélection ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer les colonnes  |  Basculer l'état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités en vedette : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Crypter/Déchiffrer les cellules    Envoyer un e-mail par liste   |  Super Filtre   |   Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...) ...
Top15 ensembles d'outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   50+ types de graphiques (Diagramme de Gantt, ...)   |   40+ formules pratiques (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils d'insertion (Insérer un code QR, Insérer une image depuis le chemin, ...)   |  12 outils de conversion (Convertir en mots, Conversion de devises, ...)   |  7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...)   |   ... et plus

Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte une interface à onglets à Office, et facilite grandement votre travail

  • Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
  • Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
  • Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !