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

Come fare per consentire la selezione di una sola casella di controllo all’interno di un gruppo in Excel?

AutoreSiluvia Data di modifica

In alcune applicazioni di Excel potrebbe essere necessario consentire agli utenti di selezionare un’unica opzione da un gruppo di caselle di controllo, replicando il comportamento dei pulsanti di opzione. Ad esempio, come mostrato nell’immagine seguente, quando si seleziona una casella di controllo nella riga 2, tutte le altre del gruppo vengono immediatamente deselezionate, garantendo che sia possibile effettuare una sola scelta alla volta. Questa funzionalità è particolarmente utile nei moduli per sondaggi, negli elenchi a risposta singola o nei pannelli di controllo in cui si desidera evitare selezioni multiple. Per implementare questo comportamento direttamente in Excel sono necessarie tecniche specifiche, come l’utilizzo di codice VBA. Questo articolo offre soluzioni pratiche per ottenere l’effetto «selezione singola» con le caselle di controllo in Excel, complete di istruzioni dettagliate e considerazioni fondamentali per un utilizzo efficace nel contesto reale.

Uno screenshot di un gruppo di caselle di controllo in Excel in cui è possibile selezionarne solo una alla volta


Consenti la selezione di una sola casella di controllo tramite codice VBA

È possibile utilizzare il seguente approccio VBA per garantire che, all’interno di un gruppo, possa essere selezionata una sola casella di controllo alla volta. Questa soluzione è particolarmente indicata quando si desidera un’esperienza automatica e fluida, ideale per modelli complessi o nei casi in cui è fondamentale gestire in modo preciso la logica di abilitazione e disabilitazione.

1. Inizia inserendo le caselle di controllo nel punto in cui desideri applicare la selezione singola. Per questa soluzione, devi utilizzare le caselle di controllo ActiveX, poiché quelle dei Controlli modulo non supportano direttamente il meccanismo di abilitazione/disabilitazione. Per inserire le caselle di controllo ActiveX, vai alla scheda Sviluppo > Inserisci > Controlli ActiveX > Casella di Controllo. Disponi tutte le caselle di controllo all’interno del gruppo desiderato, come mostrato di seguito:

Uno screenshot che mostra l'inserimento di caselle di controllo ActiveX Control in Excel

2. Premi contemporaneamente Alt + F11 per aprire la finestra di Microsoft Visual Basic, Applications.

3. Nella finestra dell’editor, fai clic su Inserisci > Modulo classe. Questo passaggio crea un nuovo modulo classe, necessario per gestire gli eventi di più caselle di controllo. Grazie a un modulo classe, puoi rispondere in modo individuale al clic su ciascuna casella, indipendentemente dal numero totale di caselle presenti.

Uno screenshot che mostra l'opzione per inserire un modulo di classe in Excel VBA

4. Individua il nuovo modulo classe nel riquadro Proprietà (solitamente a sinistra), fai clic su di esso e, nella casella Nome, rinominalo dal valore predefinito (ad esempio Classe1) in ClsChk. Quindi copia e incolla il codice seguente nella finestra del modulo classe. Fai riferimento all’immagine seguente:

Uno screenshot del riquadro Proprietà in VBA per rinominare la classe in ClsChk

Codice VBA 1: Seleziona una sola casella di controllo alla volta

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. Successivamente, fai clic su Inserisci > Modulo per aggiungere un modulo standard. Copia e incolla il seguente codice nella finestra del modulo: questo codice inizializzerà e «collegherà» tutte le tue caselle di controllo al gestore eventi definito in precedenza.

Codice VBA 2: Seleziona una sola casella di controllo alla volta

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. Premi F5 per eseguire il codice, che attiva la logica di selezione singola per il tuo gruppo di caselle di controllo. Prova il comportamento selezionando una qualsiasi delle caselle: tutte le altre verranno immediatamente deselezionate e disabilitate. Deselezionando la tua selezione corrente, tutte le caselle verranno nuovamente abilitate, consentendoti di effettuare una scelta diversa.

Uno screenshot di caselle di controllo in Excel in cui, dopo l'esecuzione del codice VBA, ne è abilitata soltanto una alla volta

Nota: Se aggiungi o rimuovi caselle di controllo dal tuo gruppo, dovrai rieseguire il codice VBA di inizializzazione. Questo perché i gestori degli eventi vengono aggiornati ogni volta che il codice viene eseguito, garantendo che eventuali modifiche al gruppo di controlli siano correttamente riconosciute dal tuo codice VBA.

I vantaggi di questo metodo includono la completa automazione: gli utenti non possono selezionare accidentalmente più opzioni. Tuttavia, funziona esclusivamente con i controlli ActiveX, che potrebbero essere limitati dalla versione di Excel, e richiede l’abilitazione delle macro. Inoltre, la distribuzione di cartelle di lavoro contenenti controlli ActiveX o macro ad altri utenti potrebbe richiedere autorizzazioni di sicurezza aggiuntive.


Articoli correlati:

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