Comment permettre la sélection d'une seule case à cocher dans un groupe dans Excel ?
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.
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 :
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.
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 :
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.
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 :
- Comment filtrer des données basées sur 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 tampon de date dans une cellule si une case à cocher est cochée dans Excel ?
Meilleurs outils de productivité pour Office
Boostez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité sans précédent. Kutools pour Excel propose plus de300 fonctionnalités avancées pour augmenter la 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 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, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 %, et réduit des centaines de clics de souris pour vous chaque jour !