Skip to main content

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

Come consentire la selezione di una sola casella di controllo in un gruppo in Excel?

Author Siluvia Last modified

In alcune applicazioni di Excel, potrebbe essere necessario consentire agli utenti di selezionare solo un'opzione da un gruppo di caselle di controllo, imitando il comportamento dei pulsanti radio. Ad esempio, come mostrato nello screenshot sottostante, quando si seleziona una casella di controllo nella riga 2, tutte le altre caselle di controllo del gruppo vengono immediatamente disabilitate, assicurando che sia possibile fare solo una scelta alla volta. Questa restrizione è utile nei moduli di sondaggio, nelle liste di selezione a risposta singola o nei dashboard in cui si desidera impedire risposte multiple. Per ottenere questa funzionalità direttamente in Excel sono necessarie tecniche specifiche, come l'utilizzo del codice VBA. Questo articolo fornisce soluzioni pratiche per abilitare un effetto di "selezione singola" con le caselle di controllo in Excel, comprese istruzioni dettagliate e considerazioni importanti per l'uso pratico.

A screenshot of a group of checkboxes in Excel where only one can be selected at a time


Consentire la selezione di una sola casella di controllo con il codice VBA

È possibile utilizzare il seguente approccio VBA per assicurarsi che solo una casella di controllo in un gruppo possa essere selezionata alla volta. Questa soluzione è particolarmente adatta quando si desidera un'esperienza fluida e automatica, ideale per modelli complessi o quando il controllo della logica di abilitazione/disabilitazione è importante.

1. Iniziate inserendo le caselle di controllo dove desiderate che venga applicata una selezione singola. Per questa soluzione, è necessario utilizzare le caselle di controllo ActiveX Control, poiché le caselle di controllo Form Controls non supportano direttamente il meccanismo di abilitazione/disabilitazione. Per inserire le caselle di controllo ActiveX, andate nella scheda Sviluppatore > Inserisci > Controlli ActiveX > Casella di controllo. Disponete tutte le caselle di controllo all'interno del gruppo desiderato come mostrato di seguito:

A screenshot showing the insertion of ActiveX Control checkboxes in Excel

2. Premete contemporaneamente Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.

3. Nella finestra dell'editor, cliccate su Inserisci > Modulo di classe. Questo passaggio crea un nuovo modulo di classe, necessario per gestire gli eventi per più caselle di controllo. L'uso di un modulo di classe rende possibile rispondere al clic di ciascuna casella di controllo individualmente, indipendentemente dal numero di caselle di controllo presenti.

A screenshot showing the option to insert a Class Module in Excel VBA

4. Trovate il nuovo modulo di classe nel riquadro Proprietà (generalmente a sinistra), cliccatelo e nella casella (Nome) rinominatelo dal valore predefinito (ad esempio Class1) in ClsChk. Quindi, copiate e incollate il seguente codice nella finestra del codice di questo modulo di classe. Vedere lo screenshot come riferimento:

A screenshot of the Properties pane in VBA for renaming the class to ClsChk

Codice VBA 1: Selezionare 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, cliccate su Inserisci > Modulo per aggiungere un modulo di codice standard. Copiate e incollate il seguente codice nella finestra del modulo. Questo codice inizializzerà e "collegherà" tutte le vostre caselle di controllo al gestore degli eventi definito sopra:

Codice VBA 2: Selezionare 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. Premete F5 per eseguire il codice, che attiva la logica di selezione singola per il gruppo di caselle di controllo. Testate il comportamento selezionando una qualsiasi delle caselle; tutte le altre caselle dovrebbero immediatamente diventare non selezionate e disabilitate. Deselezionando la vostra scelta corrente, verranno riabilitate tutte le caselle di controllo in modo da poter fare una scelta diversa.

A screenshot of checkboxes in Excel where only one is enabled at a time after VBA code execution

Nota: Se aggiungete o eliminate caselle di controllo dal vostro gruppo, sarà necessario rieseguire l'inizializzazione VBA. Questo perché i gestori di eventi vengono aggiornati ogni volta che il codice viene eseguito, assicurando che eventuali modifiche al gruppo di controlli siano riconosciute correttamente dal vostro VBA.

I vantaggi di questo metodo includono la completa automazione - gli utenti non possono accidentalmente selezionare più opzioni. Tuttavia, funziona solo con i controlli ActiveX, che possono essere limitati dalla versione di Excel, e i macro devono essere abilitati. Inoltre, distribuire cartelle di lavoro con controlli ActiveX o macro ad altri utenti potrebbe richiedere ulteriori autorizzazioni di sicurezza.


Articoli correlati:

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