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-08-06

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é Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données grâce à : Exécution intelligente   |  Générer du code  |  Créer des Formules personnalisées  |  Analyser des données et générer des graphiques  |  Appeler les Fonctions améliorées
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons   |  Supprimer les lignes vides   |  Combiner les colonnes ou cellules sans perdre de données   |  Arrondir...
Super RECHERCHEV : Recherche multi-critères    Recherche multi-valeurs  |   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 avec sélection multiple ....
Gestionnaire de colonnes : Ajouter un nombre spécifique de colonnes  |  Déplacer des colonnes  |  Basculer l’état de visibilité des colonnes masquées  |  Comparer les plages & colonnes ...
Fonctionnalités à la une : Mise au point de la grille   |  Affichage de conception   |   Barre de formule améliorée    Gestionnaire de classeur & de feuille de calcul   |  Bibliothèque dAutoTexte (Auto Text)   |  Sélecteur de date   |  Fusionner les données   |  Chiffrer/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 des ensembles d’outils12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...)   |   Plus de50 types de graphiques (Diagramme de Gantt, ...)   |   Plus de40 formules intelligentes (Calculer lâge en fonction de la date de naissance, ...)   |   19 outils dinsertion (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 bien plus encore
Utilisez Kutools dans votre langue préférée: compatible avec l’anglais, l’espagnol, l’allemand, le français, le chinois et plus de40 autres langues !

Dynamisez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps.  Cliquez ici pour obtenir la fonctionnalité la plus essentielle pour vous...


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, au lieu d’ouvrir de nouvelles fenêtres.
  • Augmentez votre productivité de50% et réduisez des centaines de clics de souris chaque jour!