KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come fare per deselezionare un'altra casella di controllo quando se ne seleziona una in Excel?

AutoreSiluvia Data di modifica

In molti scenari pratici, ad esempio nella gestione di un lungo elenco di acquisti in Excel, potresti trovarti nella situazione in cui desideri garantire che all'interno di una specifica categoria o gruppo possa essere selezionata una sola opzione. Ad esempio, se alcune categorie superano il budget stabilito, potrebbe essere necessario rivedere le scelte in modo che rimanga selezionato un solo elemento per gruppo. Gestire manualmente le caselle di controllo in elenchi estesi può risultare inefficiente e soggetto a errori, soprattutto all'aumentare del numero di categorie. Per semplificare questo processo e ridurre gli errori, puoi configurare Excel in modo che, quando viene selezionata una nuova casella di controllo all'interno di un gruppo, quella precedentemente selezionata venga automaticamente deselezionata, garantendo così una selezione singola per categoria in ogni momento. Questo articolo fornisce una guida passo passo per ottenere questo risultato, rendendo il tuo flusso di lavoro più efficiente e affidabile.


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

Per illustrare la procedura, immagina uno scenario come quello mostrato nel video qui sopra. Hai dieci caselle di controllo, denominate CheckBox1 fino a CheckBox10, organizzate in tre gruppi che rappresentano diverse categorie di acquisto.

✅ Struttura dei gruppi:

  • Gruppo 1: CheckBox1, CheckBox2, CheckBox3
  • Gruppo 2: CheckBox4, CheckBox5, CheckBox6, CheckBox7
  • Gruppo 3: CheckBox8, CheckBox9, CheckBox10

All'interno di ciascun gruppo, deve essere selezionata una sola casella di controllo alla volta. Quando ne viene selezionata una nuova, le altre dello stesso gruppo vengono automaticamente deselezionate — un comportamento simile a quello dei Pulsante di Opzione, ma realizzato con caselle di controllo.

🧩 Passaggi per applicare la soluzione VBA:

  1. Apri l'editor VBA: Fai clic con il tasto destro sulla scheda del foglio in cui sono posizionate le caselle di controllo, quindi scegli Visualizza codice.
  2. Menu Visualizza codice
  3. Incolla il seguente codicenella finestra del codice del foglio di lavoro:
  4. 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
  5. Chiudi l'editor VBA (Alt + Q) e torna a Excel per testare le caselle di controllo.

📌 Note importanti:

  • Assicurati che la proprietà Nome delle caselle di controllo (non delle etichette) corrisponda esattamente ai nomi nel codice.
  • I raggruppamenti sono definiti nella riga dell'array:
    xAllArr = Array("CheckBox1,CheckBox2,CheckBox3", "CheckBox4,CheckBox5,CheckBox6,CheckBox7", "CheckBox8,CheckBox9,CheckBox10")
  • Questo codice VBA funziona soltanto con le caselle di controllo di tipo ActiveX Control, non con i controlli modulo.
  • È necessario abilitare le macro per consentire il corretto funzionamento di questa automazione.

📺 Demo:

🔍 Suggerimenti per la risoluzione dei problemi:

  • Assicurati che non ci siano nomi duplicati tra le caselle di controllo.
  • Assicurati che tutte le caselle di controllo siano controlli ActiveX.
  • Ogni routine associata a una casella di controllo deve richiamare correttamente SetCheckBoxes.
  • Gli scenari su più fogli richiedono personalizzazioni tramite moduli di classe o un controllo centralizzato.

💡 Soluzione alternativa: Puoi utilizzare i pulsanti di opzione dei controlli modulo per ottenere automaticamente il comportamento di selezione singola. Tuttavia, per layout avanzati e una maggiore flessibilità nella logica, la combinazione VBA + caselle di controllo è preferibile.

✨ Suggerimento: Strumenti come Kutools per Excel offrono una gestione delle caselle di controllo tramite un’interfaccia grafica intuitiva, semplificando la configurazione senza dover scrivere codice.


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

 
Kutools per Excel: Oltre 300 strumenti pratici a portata di mano! Goditi funzionalità basate sull’intelligenza artificiale per lavorare in modo più intelligente e veloce!Scarica ora!

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità 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 all’interno della stessa finestra, invece che in finestre separate.
  • Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!

Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.

Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.

ExcelWordOutlookTabsPowerPoint
  • Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
  • Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
  • Funziona meglio insieme— produttività ottimizzata tra le app di Office
  • Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
  • Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi