Skip to main content

Come deselezionare un'altra casella di controllo quando una casella di controllo è selezionata in Excel?

Author: Siluvia Last Modified: 2025-05-30

Come mostrato nel video qui sotto, supponiamo di avere un elenco di acquisto che devi finalizzare. Durante la verifica dell'elenco, noti che gli elementi selezionati in alcune categorie superano il budget e devono essere riconsiderati. Poiché l'elenco è troppo lungo, hai ora bisogno di un metodo più efficiente per deselezionare automaticamente la casella di controllo precedentemente selezionata quando viene selezionata una nuova casella di controllo in una categoria. Questo tutorial illustra passo dopo passo il metodo per aiutarti a completare l'operazione.

Deselezionare un'altra casella di controllo quando una nuova casella di controllo viene selezionata con il codice VBA


Deselezionare un'altra casella di controllo quando una nuova casella di controllo viene selezionata con il codice VBA

Come mostrato nella demo sopra, dieci caselle di controllo denominate Checkbox1, Checkbox2, Checkbox3, ..., Checkbox10 sono divise in 3 gruppi e posizionate in diverse categorie della tabella.

In questo esempio, Checkbox1, 2, 3 appartengono a un gruppo, Checkbox4, 5, 6, 7 a un altro gruppo, e Checkbox8, 9, 10 sono nello stesso gruppo. In ogni gruppo, è consentito selezionare solo una casella di controllo alla volta. Quando una casella di controllo viene selezionata, un'altra casella di controllo viene automaticamente deselezionata.

Ora vediamo come applicare il seguente codice VBA per risolvere questo problema.

1. Fai clic con il tasto destro sul tab del foglio e seleziona Visualizza Codice dal menu contestuale.

A screenshot showing the option View Code in the context menu of a sheet tab in Excel

2. Nella finestra aperta di Microsoft Visual Basic for Applications, incolla il seguente codice VBA nella finestra Foglio (Codice).

A screenshot of the VBA code editor in Excel with example VBA code for managing checkboxes

Codice VBA: Deselezionare un'altra casella di controllo quando una nuova casella di controllo viene selezionata

Dim xBol As Boolean
'Updated by Extendoffice 20220816
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 x As Long
Dim xAllArr
Dim xArrItem
Dim xI, xJ
If Not xBol Then Exit Function
'In the following line, the checkboxes enclosed in double quotes belong to the same group, and each checkbox is separated by a comma. To add more checkbox groups, please enclose the checkboxes in new double quotes.
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:

1) Nel codice, Checkbox1, Checkbox2, ..., Checkbox10 sono i nomi delle caselle di controllo;
2) Nella riga seguente, le caselle di controllo racchiuse tra virgolette doppie appartengono allo stesso gruppo, e ogni casella di controllo è separata da una virgola. Per aggiungere altri gruppi di caselle di controllo, racchiudi le caselle di controllo in nuove virgolette doppie.
xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
3) Le caselle di controllo sono caselle di controllo ActiveX Control.

3. Premi i tasti Alt + Q per chiudere la finestra Microsoft Visual Basic for Applications.

Quindi, quando selezioni una nuova casella di controllo in un gruppo, quella precedentemente selezionata verrà automaticamente deselezionata, come mostrato nel gif qui sotto.


Demo: Deselezionare un'altra casella di controllo quando una casella di controllo è selezionata in Excel

Kutools per Excel: Oltre 300 strumenti utili a portata di mano! Goditi funzionalità AI gratuite per sempre! Scarica Ora!

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l'analisi dei dati grazie a: Esecuzione Intelligente | Genera Codice | Crea Formule Personalizzate | Analizza Dati e Genera Grafici | Richiama Funzioni avanzate di Kutools
Funzionalità popolari: Trova, evidenzia o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda...
Super RICERCA.VERT: Ricerca VERT con criteri multipli | Ricerca VERT con valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestione Colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Attiva/disattiva la visibilità delle colonne nascoste | Confronta intervalli e colonne...
Funzionalità in evidenza: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestione Cartella di lavoro e Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email tramite elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...) ...
Top15 set di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule pratiche (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti di unione e divisione (Unione avanzata righe, Dividi celle, ...) | ... e molto altro

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 risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e la 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 tua produttività del50% e riduce centinaia di clic del mouse ogni giorno!