KutoolsforOffice — Une solution unique, cinq outils puissants.Faire plus avec moins d'efforts.Soldes de mars : 20 % de réduction

Comment autoriser la sélection d’une seule case à cocher dans un groupe sous Excel ?

AuteurSiluvia Date de modification

Dans certaines applications Excel, il peut être utile de permettre aux utilisateurs de sélectionner une seule option parmi un groupe de cases à cocher, reproduisant ainsi le comportement des boutons radio. Par exemple, comme illustré dans la capture d’écran ci-dessous, lorsqu’une case à cocher de la ligne 2 est cochée, toutes les autres cases du groupe sont immédiatement désactivées, garantissant qu’un seul choix soit possible à tout moment. Cette restriction s’avère particulièrement précieuse dans les formulaires de sondage, les listes à réponse unique ou les tableaux de bord où les réponses multiples doivent être évitées. Pour obtenir cette fonctionnalité directement dans Excel, des techniques spécifiques sont nécessaires, notamment l’utilisation de code VBA. Cet article propose des solutions concrètes pour activer un effet de « sélection unique » avec des cases à cocher dans Excel, accompagnées d’instructions détaillées et de considérations essentielles pour une mise en œuvre efficace.

Capture d’écran d’un groupe de cases à cocher dans Excel où une seule peut être sélectionnée à la fois


Permettre la sélection d’une seule case à cocher à l’aide d’un code VBA

Vous pouvez utiliser l’approche VBA suivante pour garantir qu’une seule case à cocher d’un groupe soit sélectionnée à la fois. Cette solution est particulièrement adaptée lorsque vous recherchez une expérience fluide et entièrement automatique, notamment dans des modèles complexes ou lorsque la logique d’activation et de désactivation est essentielle.

1. Commencez par insérer les cases à cocher là où vous souhaitez appliquer la règle de sélection unique. Pour cette solution, vous devez impérativement utiliser des cases à cocher de type Contrôle ActiveX, car les cases à cocher de type Contrôle de formulaire 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. Disposez ensuite toutes les cases à cocher de votre groupe comme illustré ci-dessous :

Capture d’écran montrant l’insertion de cases à cocher de contrôle ActiveX dans Excel

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

3. Dans la fenêtre de l’éditeur, cliquez sur Insertion > Module de classe. Cette étape crée un nouveau module de classe, indispensable pour gérer les événements de plusieurs cases à cocher. Grâce à un module de classe, vous pouvez réagir individuellement au clic sur chaque case à cocher, quel que soit leur nombre.

Capture d’écran montrant l’option pour insérer un module de classe dans VBA Excel

4. Localisez le nouveau module de classe dans le volet Propriétés (généralement à gauche), cliquez dessus, puis renommez-le dans la zone Nom en remplaçant la valeur par défaut (par exemple, Classe1) par ClsChk. Ensuite, copiez-collez le code suivant dans la fenêtre de code de ce module de classe. Reportez-vous à la capture d’écran à titre indicatif :

Capture d’écran du volet Propriétés dans VBA permettant de renommer la classe en ClsChk

Code VBA 1 : autoriser la sélection d’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. Cliquez ensuite sur Insertion > Module pour ajouter un module de code standard. Copiez-collez le code suivant dans la fenêtre du module. Ce code initialisera et « reliera » toutes vos cases à cocher au gestionnaire d’événements défini précédemment :

Code VBA 2 : autoriser la sélection d’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 ce comportement en cochant l’une des cases : toutes les autres doivent immédiatement se décocher et être désactivées. Dès que vous décochez votre sélection actuelle, toutes les cases à cocher sont réactivées, vous permettant ainsi d’effectuer un nouveau choix.

Capture d’écran de cases à cocher dans Excel où une seule est activée à la fois après l’exécution du code VBA

Remarque : Si vous ajoutez ou supprimez des cases à cocher dans votre groupe, vous devrez réexécuter le code VBA d’initialisation. En effet, les gestionnaires d’événements sont mis à jour à chaque exécution du code, garantissant ainsi que toute modification apportée au groupe de contrôles soit correctement prise en compte par votre macro VBA.

Les atouts de cette méthode résident dans son automatisation totale : les utilisateurs ne peuvent pas choisir plusieurs options par inadvertance. Toutefois, elle ne fonctionne qu’avec les contrôles ActiveX, dont la disponibilité dépend de la version d’Excel utilisée, et exige que les macros soient activées. En outre, partager des classeurs intégrant des contrôles ActiveX ou des macros avec d’autres utilisateurs peut nécessiter des autorisations de sécurité supplémentaires.


Articles associés:

Meilleurs outils de productivité Office

🤖Kutools IA Aide: Révolutionnez Analyse des données grâce à :Exécution intelligente   |  Générez du code|  Créez formules personnalisées  |  Analysez des données et générez des graphiques|  Appelez Fonctions améliorées
Fonctionnalités populaires:Rechercher, mettre en surbrillance ou Marquer les doublons   |  Supprimer les lignes vides   |  Combinez les colonnes ou cellules sans perdre de données   |   Arrondi sans utiliser de formule...
Super RECHERCHEV:RechercheValeurs avec critères multiples  |  RechercheValeurs avec valeurs multiples  |   RechercheValeurs dans plusieurs feuilles   |   Correspondance floue....
Liste déroulante avancée:Créez rapidement une liste déroulante   |  Liste déroulante dépendante   |  Liste déroulante à sélection multiple....
Gestionnaire de colonnes:Ajouter un nombre précis de colonnes|Déplacer des colonnes|Basculer la visibilité des colonnes masquées|Comparer des plages et des colonnes...
Fonctionnalités vedettes:Mise au point de la grille   |  Vue de conception   |Barre de formule améliorée   | Gestionnaire de classeurs et de feuilles   |  Bibliothèque de ressources(Texte automatique)|  Sélecteur de date   |  Consolider les feuilles de calcul  |  Chiffrer/Déchiffrer les cellules   | Envoyer des e-mails par liste   |  Super Filtre   |   Filtre spécial(Filtrer les cellules avec une police en gras/italique/barré...) ...
… et bien plus encore… et plus encore:(,)Supprimer des caractères spécifiques, ...)|   50+Typesde graphiques(, ...)|   40+ Formules pratiques(Calculer l'âge en fonction de la date de naissance, ...)|   19 Outils d’insertion(,Insérer une image depuis un chemin , ...)|   de conversion (Convertir en mots,Conversion de devises, ...)|Fusionner et scinder   (Fusion avancée des lignes,Diviser les cellules , ...)|, ...)   |
Utilisez Kutools dans la langue de votre choix – disponible en anglais, espagnol, allemand, français, chinois et 40+ autres langues !

Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre 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 rend votre travail bien plus facile

  • Activez l’édition 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é de 50 % et vous fait économiser des centaines de clics de souris chaque jour !

Tous les compléments Kutools. Un seul installateur

Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.

ExcelWordOutlookTabsPowerPoint
  • Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
  • Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
  • Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
  • Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
  • Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels