Skip to main content

Kutools per Office — Una Suite. Cinque Strumenti. Ottieni di Più.

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

Author Siluvia Last modified

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

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:

  1. Apri l'Editor VBA: Fai clic destro sulla scheda del foglio dove sono posizionate le caselle di controllo, poi scegli Visualizza Codice.
  2. View Code menu
  3. Incolla il seguente codice nella 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 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

 
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 crea grafici | Attiva Funzioni avanzate
Funzionalità più usate: Trova, evidenziazione o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda senza formula...
Super RICERCA.VERT: Ricerca VERT per criteri multipli | Ricerca VERT per 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...
Gestore colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia stato di visibilità delle colonne nascoste | Confronta intervalli & colonne...
Funzionalità in primo piano: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestore di cartelle di lavoro & fogli | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email per elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
Top15 strumenti:12 strumenti Testo (Aggiungi testo, Elimina Caratteri Specifici, ...) |50+ tipi di grafico (Diagramma di Gantt, ...) |40+ formule pratiche (Calcola letà 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 Unione & Dividi (Unione avanzata righe, Dividi celle, ...) | ... e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre lingue!

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.

Excel Word Outlook Tabs PowerPoint
  • 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