Accéder au contenu principal

Kutools for Office — Une Suite. Cinq Outils. Accomplissez Plus.

Comment autoriser uniquement une case à cocher dans un groupe à être sélectionnée dans Excel ?

Author Siluvia Last modified

Dans certaines applications Excel, vous pourriez avoir besoin de permettre aux utilisateurs de sélectionner une seule option parmi un groupe de cases à cocher — mimant ainsi le comportement des boutons radio. Par exemple, comme illustré dans la capture d'écran ci-dessous, lorsque vous cochez une case dans la ligne 2, toutes les autres cases du groupe sont instantanément désactivées, garantissant qu'une seule option peut être choisie à la fois. Cette restriction est utile dans les formulaires de sondage, les listes de sélection à réponse unique ou les tableaux de bord où vous souhaitez éviter des réponses multiples. Réaliser cette fonctionnalité directement dans Excel nécessite des techniques spécifiques, telles que l'utilisation de code VBA. Cet article fournit des solutions pratiques pour activer un effet de "sélection unique" avec des cases à cocher dans Excel, y compris des instructions étape par étape et des considérations importantes pour une utilisation en situation réelle.

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


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

Vous pouvez utiliser l'approche VBA suivante pour vous assurer qu'une seule case à cocher d'un groupe peut être sélectionnée à la fois. Cette solution est particulièrement adaptée lorsque vous avez besoin d'une expérience fluide et automatique — idéale pour des modèles complexes ou lorsque le contrôle de la logique d'activation/désactivation est important.

1. Commencez par insérer les cases à cocher là où vous souhaitez imposer une sélection unique. Pour cette solution, vous devez utiliser des cases à cocher ActiveX Control, car les cases à cocher Form Controls ne prennent pas en charge directement le mécanisme d'activation/désactivation. Pour insérer des cases à cocher ActiveX, accédez à l'onglet Développeur > Insérer > Contrôles ActiveX > Case à cocher. Organisez toutes les cases à cocher dans votre groupe souhaité comme indiqué ci-dessous :

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Appuyez simultanément sur Alt + F11 pour ouvrir la fenêtre Microsoft Visual Basic for Applications.

3. Dans la fenêtre de l'éditeur, cliquez sur Insérer > Module de classe. Cette étape crée un nouveau module de classe, nécessaire pour gérer les événements pour plusieurs cases à cocher. L'utilisation d'un module de classe permet de répondre individuellement à chaque clic sur une case à cocher, quel que soit leur nombre.

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

4. Trouvez le nouveau module de classe dans le Panneau Propriétés (généralement à gauche), cliquez dessus, et dans la zone (Nom), renommez-le de sa valeur par défaut (comme Class1) en ClsChk. Ensuite, copiez-collez le code suivant dans la fenêtre de code de ce module de classe. Voir la capture d'écran ci-dessous comme référence :

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

Code VBA 1 : Sélectionnez 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. Ensuite, cliquez sur Insérer > Module pour ajouter un module de code standard. Copiez-collez le code suivant dans la fenêtre du module. Ce code initialisera et "liera" toutes vos cases à cocher au gestionnaire d'événements défini précédemment :

Code VBA 2 : Sélectionnez 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 F5 pour exécuter le code, ce qui active la logique de sélection unique pour votre groupe de cases à cocher. Testez le comportement en cochant n'importe laquelle des cases ; toutes les autres cases doivent immédiatement se décocher et être désactivées. Décocher votre sélection actuelle réactivera toutes les cases à cocher afin que vous puissiez faire un autre choix.

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

Remarque : Si vous ajoutez ou supprimez des cases à cocher de votre groupe, vous devrez relancer l'initialisation VBA. Cela est dû au fait que les gestionnaires d'événements sont actualisés à chaque exécution du code, garantissant que tous les changements apportés au groupe de contrôles soient correctement reconnus par votre VBA.

Les avantages de cette méthode incluent son entière automatisation — les utilisateurs ne peuvent pas accidentellement sélectionner plusieurs options. Cependant, cela ne fonctionne qu'avec les contrôles ActiveX, qui peuvent être limités selon la version d'Excel, et les macros doivent être activées. De plus, la distribution de classeurs avec des contrôles ActiveX ou des macros à d'autres utilisateurs pourrait nécessiter des permissions de sécurité supplémentaires.


Articles connexes :

Meilleurs outils de productivité pour Office

🤖 Kutools AI Aide : Révolutionnez l'analyse de données avec : 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 de Kutools
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons | Supprimer les lignes vides | Combinez les colonnes ou les cellules sans perte de données | Arrondir sans formule...
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 à sélection multiple...
Gestionnaire de colonnes : Ajouter un nombre spécifique de Colonnes | Déplacer des Colonnes | Alterner l’état de visibilité des Colonnes masquées | Comparer des plages & Colonnes...
Fonctionnalités phares : Mise au point de la grille | Affichage de conception | Barre de formule améliorée | Gestionnaire de Classeur & Feuille de calcul | Bibliothèque d’AutoTexte | Sélecteur de date | Merge Worksheets | 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’outils :12 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 bien plus encore
Utilisez Kutools dans la langue de votre choix – disponible en Anglais, Espagnol, Allemand, Français, Chinois et plus de40 autres !

Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...


Office Tab apporte l’interface par onglets à Office, simplifiant considérablement 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 chaque jour !

Tous les modules complémentaires Kutools. Une seule installation

La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.

Excel Word Outlook Tabs PowerPoint
  • Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Un installateur, une licence — installation en quelques minutes (compatible MSI)
  • Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
  • Essai complet30 jours — sans inscription, ni carte bancaire
  • Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels