Comment autoriser uniquement une case à cocher dans un groupe à être sélectionnée dans Excel ?
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.
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 :
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.
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 :
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.
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 :
- Comment filtrer des données en fonction d'une case à cocher dans Excel ?
- Comment masquer une case à cocher lorsque la ligne est masquée dans Excel ?
- Comment mettre en évidence une cellule ou une ligne avec une case à cocher dans Excel ?
- Comment créer une liste déroulante avec plusieurs cases à cocher dans Excel ?
- Comment insérer un horodatage dans une cellule si une case à cocher est cochée dans Excel ?
Meilleurs outils de productivité pour Office
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.





- 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