Comment faire pour qu’une autre case soit automatiquement décochée lorsqu’une case est cochée dans Excel ?
Dans de nombreux cas concrets, comme la gestion d’une longue liste d’achats dans Excel, vous pouvez être amené à garantir qu’une seule option soit sélectionnée au sein d’une même catégorie ou d’un groupe spécifique. Par exemple, si certains articles dépassent le budget alloué, vous devrez peut-être les remplacer afin qu’une seule case reste cochée par groupe. La gestion manuelle des cases à cocher devient rapidement fastidieuse et sujette aux erreurs, surtout à mesure que le nombre de catégories augmente. Pour simplifier ce processus et minimiser les risques d’erreur, vous pouvez configurer Excel de sorte que, lorsqu’une nouvelle case est cochée dans un groupe, celle précédemment sélectionnée soit automatiquement décochée — assurant ainsi une sélection unique par catégorie en tout temps. Cet article vous guide pas à pas pour mettre en œuvre cette solution et rendre votre flux de travail plus efficace et fiable.
➤ Décocher automatiquement une autre case lorsqu’une nouvelle case est cochée à l’aide d’un code VBA
Décocher automatiquement une autre case lorsqu’une nouvelle case est cochée à l’aide d’un code VBA
Pour illustrer la procédure, prenons l’exemple présenté dans la vidéo ci-dessus : vous disposez de dix cases à cocher, nommées CheckBox1 à CheckBox10, réparties en trois groupes correspondant à différentes catégories d’achat.
✅ Structure des groupes :
- Groupe 1 : CheckBox1, CheckBox2, CheckBox3
- Groupe 2 : CheckBox4, CheckBox5, CheckBox6, CheckBox7
- Groupe 3 : CheckBox8, CheckBox9, CheckBox10
Au sein de chaque groupe, une seule case à cocher doit être sélectionnée à la fois. Lorsqu’une nouvelle case est cochée, les autres du même groupe sont automatiquement décochées — un comportement similaire à celui des Bouton radio, mais réalisé à l’aide de cases à cocher.
🧩 Étapes pour appliquer la solution VBA :
- Ouvrez l’éditeur VBA : Cliquez avec le bouton droit sur l’onglet de la feuille contenant les cases à cocher, puis sélectionnez Afficher le code.
- Collez le code suivantdans la fenêtre de code de la feuille :
- Fermez l’éditeur VBA (Alt + Q) et retournez à Excel pour tester les cases à cocher.
Dim xBol As Boolean
'Updated by Extendoffice
Private Sub CheckBox1_Change(): SetCheckBoxes "CheckBox1": End Sub
Private Sub CheckBox2_Change(): SetCheckBoxes "CheckBox2": End Sub
Private Sub CheckBox3_Change(): SetCheckBoxes "CheckBox3": End Sub
Private Sub CheckBox4_Change(): SetCheckBoxes "CheckBox4": End Sub
Private Sub CheckBox5_Change(): SetCheckBoxes "CheckBox5": End Sub
Private Sub CheckBox6_Click(): SetCheckBoxes "CheckBox6": End Sub
Private Sub CheckBox7_Click(): SetCheckBoxes "CheckBox7": End Sub
Private Sub CheckBox8_Click(): SetCheckBoxes "CheckBox8": End Sub
Private Sub CheckBox9_Click(): SetCheckBoxes "CheckBox9": End Sub
Private Sub CheckBox10_Click(): SetCheckBoxes "CheckBox10": End Sub
Private Function SetCheckBoxes(mCheckBoxName As String)
Dim xAllArr, xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", _
"CheckBox4,CheckBox5,CheckBox6,CheckBox7", _
"CheckBox8,CheckBox9,CheckBox10")
For xI = LBound(xAllArr) To UBound(xAllArr)
If InStr(xAllArr(xI), mCheckBoxName) > 0 Then
xBol = False
xArrItem = Split(xAllArr(xI), ",")
For xJ = LBound(xArrItem) To UBound(xArrItem)
If xArrItem(xJ) <> mCheckBoxName Then
Me.OLEObjects(xArrItem(xJ)).Object.Value = False
End If
Next
End If
Next
xBol = True
End Function
Private Sub Worksheet_Activate(): xBol = True: End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range): xBol = True: End Sub 📌 Notes importantes :
- Vérifiez que la propriété Nom de votre case à cocher (et non son étiquette) corresponde exactement aux noms utilisés dans le code.
- Les groupes sont définis dans la ligne du tableau :
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10") - Ce code VBA fonctionne uniquement avec les cases à cocher de type Contrôle ActiveX, et non avec les contrôles de formulaire.
- Les macros doivent être activées pour que cette automatisation fonctionne correctement.
📺 Démo :
🔍 Conseils de dépannage :
- Vérifiez qu’aucun nom de case à cocher n’est utilisé en double.
- Assurez-vous que toutes les cases à cocher sont des contrôles ActiveX.
- Chaque procédure associée à une case à cocher doit impérativement appeler la procédure
SetCheckBoxes. - Les scénarios inter-feuilles exigent une adaptation via des modules de classe ou un contrôle centralisé.
💡 Solution alternative : Vous pouvez utiliser des boutons d’option issus des Contrôles de formulaire pour bénéficier d’un comportement natif de sélection unique. Toutefois, pour des mises en page avancées et un contrôle logique plus souple, la combinaison VBA + cases à cocher offre une flexibilité bien supérieure.
✨ Astuce : Des outils comme Kutools pour Excel proposent une gestion graphique des cases à cocher, facilitant ainsi leur configuration sans avoir à coder.
Démo : Décocher automatiquement une autre case lorsqu’une case est cochée dans Excel
Meilleurs outils de productivité Office
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.
- 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