Come deselezionare un'altra casella di controllo quando una casella di controllo è selezionata in Excel?
In molti scenari pratici, come la gestione di una lunga lista di acquisti in Excel, potresti incontrare situazioni in cui vuoi assicurarti che solo un'opzione possa essere selezionata all'interno di una categoria o gruppo specifico. Ad esempio, se alcune categorie superano il budget stabilito, potrebbe essere necessario rivedere gli elementi in modo che solo uno rimanga selezionato in ogni gruppo. Gestire manualmente le caselle di controllo in liste estese può essere inefficiente e soggetto a errori, soprattutto man mano che aumenta il numero di categorie. Per semplificare questo processo e ridurre gli errori, puoi configurare Excel in modo che, quando si seleziona una nuova casella di controllo in un gruppo, quella precedentemente selezionata venga automaticamente deselezionata, garantendo così una sola selezione per categoria in qualsiasi momento. Questo articolo fornisce una guida passo-passo su come ottenere ciò, rendendo il tuo flusso di lavoro più efficiente e affidabile.
➤ Deselezionare un'altra casella di controllo quando una nuova casella viene selezionata con codice VBA
Deselezionare un'altra casella di controllo quando una nuova casella viene selezionata con codice VBA
Per illustrare il processo, considera una situazione come mostrato nel video sopra. Hai dieci caselle di controllo etichettate CheckBox1 fino a CheckBox10, organizzate in tre gruppi che rappresentano diverse categorie di acquisto.
✅ Struttura del gruppo:
- Gruppo 1: CheckBox1, CheckBox2, CheckBox3
- Gruppo 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
- Gruppo 3: CheckBox8, CheckBox9, CheckBox10
All'interno di ciascun gruppo, solo una casella di controllo dovrebbe essere selezionata alla volta. Quando una nuova casella viene selezionata, le altre nello stesso gruppo vengono automaticamente deselezionate—simile al comportamento dei pulsanti radio ma utilizzando caselle di controllo.
🧩 Passaggi per applicare la soluzione VBA:
- Apri l'Editor VBA: Fai clic destro sulla scheda del foglio dove sono posizionate le caselle di controllo, poi scegli Visualizza Codice.
- Incolla il seguente codice nella finestra del codice del foglio di lavoro:
- Chiudi l'Editor VBA (Alt + Q) e torna a Excel per testare le caselle di controllo.

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
📌 Note importanti:
- Assicurati che i nomi delle proprietà delle caselle di controllo (non le etichette) corrispondano esattamente ai nomi presenti nel codice.
- I raggruppamenti sono definiti nella riga dell'array:
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
- Questo VBA funziona solo con le caselle di controllo ActiveX Control, non con i Controlli Modulo.
- Le macro devono essere abilitate affinché questa automazione funzioni.
📺 Demo:
🔍 Suggerimenti per la risoluzione dei problemi:
- Verifica che non ci siano nomi duplicati per le caselle di controllo.
- Assicurati che tutte le caselle di controllo siano Controlli ActiveX.
- Ogni procedura della casella di controllo deve richiamare correttamente
SetCheckBoxes
. - Gli scenari tra fogli diversi richiedono adattamenti tramite moduli di classe o un controllo centralizzato.
💡 Soluzione alternativa: Puoi usare i Pulsanti Opzione dai Controlli Modulo per un comportamento di selezione singola incorporato. Tuttavia, per layout avanzati e controllo logico, VBA + Caselle di controllo è più flessibile.
✨ Suggerimento: Strumenti come Kutools per Excel offrono una gestione delle caselle di controllo basata su GUI per una configurazione più semplice senza codifica.
Demo: Deselezionare un'altra casella di controllo quando una casella di controllo è selezionata in Excel
I migliori strumenti per la produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e farti risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...
Office Tab porta le schede su Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede della stessa finestra invece che in nuove finestre.
- Aumenta la produttività del50% e riduce centinaia di clic del mouse ogni giorno!
Tutti gli add-in Kutools. Un solo programma di installazione
La suite Kutools for Office include add-in per Excel, Word, Outlook & PowerPoint più Office Tab Pro, ideale per i team che lavorano su più app di Office.





- Suite tutto-in-uno — Add-in per Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un solo programma di installazione, una sola licenza — configurazione in pochi minuti (pronto per MSI)
- Funzionano meglio insieme — produttività ottimizzata su tutte le app Office
- Prova completa30 giorni — nessuna registrazione, nessuna carta di credito
- Massimo risparmio — costa meno rispetto all’acquisto singolo degli add-in