Skip to main content

Come salvare o mantenere le selezioni delle caselle di riepilogo ActiveX in Excel?

Author: Siluvia Last Modified: 2025-08-06

Supponiamo che tu abbia creato alcune caselle di riepilogo e fatto delle selezioni al loro interno, tuttavia, tutte le selezioni di queste caselle di riepilogo vengono perse quando chiudi e riapri il file di lavoro. Vuoi mantenere le selezioni fatte nelle caselle di riepilogo ogni volta che chiudi e riapri il file di lavoro? Il metodo descritto in questo articolo può aiutarti.

Salvare o mantenere le selezioni delle caselle di riepilogo ActiveX con il codice VBA in Excel


Salvare o mantenere le selezioni delle caselle di riepilogo ActiveX con il codice VBA in Excel

Il seguente codice VBA può aiutarti a salvare o mantenere le selezioni delle caselle di riepilogo ActiveX in Excel. Si prega di procedere come segue.

1. Nel file di lavoro che contiene le caselle di riepilogo ActiveX di cui vuoi mantenere le selezioni, premi contemporaneamente i tasti Alt + F11 per aprire la finestra Microsoft Visual Basic for Applications.

2. Nella finestra Microsoft Visual Basic for Applications, fai doppio clic su ThisWorkbook nel riquadro sinistro per aprire la finestra del Codice di ThisWorkbook. Successivamente, copia il seguente codice VBA nella finestra del codice.

Codice VBA: Salva le selezioni delle caselle di riepilogo ActiveX in Excel

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim I As Long
    Dim J As Long
    Dim K As Long
    Dim KK As Long
    Dim xSheet As Worksheet
    Dim xListBox As Object
    On Error GoTo Label
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    K = 0
    KK = 0
    If Not Sheets("ListBox Data") Is Nothing Then
        Sheets("ListBox Data").Delete
    End If
Label:
    Sheets.Add(after:=Worksheets(Worksheets.Count)).Name = "ListBox Data"
    Set xSheet = Sheets("ListBox Data")
    For I = 1 To Sheets.Count
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                For J = 0 To .ListCount - 1
                    If .Selected(J) Then
                        xSheet.Range("A1").Offset(K, KK).Value = "True"
                    Else
                        xSheet.Range("A1").Offset(K, KK).Value = "False"
                    End If
                    K = K + 1
                Next
                End With
                K = 0
                KK = KK + 1
            End If
        Next
    Next
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

Private Sub Workbook_Open()
    Dim I As Long
    Dim J As Long
    Dim KK As Long
    Dim xRg As Range
    Dim xCell As Range
    Dim xListBox As Object
    Application.DisplayAlerts = False
    Application.ScreenUpdating = False
    KK = 0
    For I = 1 To Sheets.Count - 1
        For Each xListBox In Sheets(I).OLEObjects
            If xListBox.Name Like "ListBox*" Then
                With xListBox.Object
                    Set xRg = Intersect(Sheets("ListBox Data").Range("A1").Offset(0, KK).EntireColumn, Sheets("ListBox Data").UsedRange)
                    For J = 1 To .ListCount
                        Set xCell = xRg(J)
                        If xCell.Value = "True" Then
                            .Selected(J - 1) = True
                        End If
                    Next
                    KK = KK + 1
                End With
            End If
        Next
    Next
    Sheets("ListBox Data").Delete
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
End Sub

a screenshot showing how to use the VBA code

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

4. Ora devi salvare il file di lavoro come Cartella di lavoro con Macro abilitate. Clicca su File > Salva con nome > Sfoglia.

a screenshot of opening the Save As dialog box

5. Nella finestra di dialogo Salva con nome, seleziona una cartella per salvare il file di lavoro, rinominalo come necessario, seleziona Cartella di lavoro con Macro abilitate nell'elenco a discesa Specifica formato di salvataggio, e infine clicca sul pulsante Salva. Vedi screenshot:

a screenshot of saving the workbook as an Excel Macro-Enabled Workbook

Salva il file di lavoro ogni volta che aggiorni le caselle di riepilogo. Quindi, tutte le selezioni precedenti verranno mantenute nelle caselle di riepilogo dopo aver riaperto il file di lavoro.

Nota: Quando salvi il file di lavoro, un foglio di lavoro denominato “ListBox Data” verrà creato automaticamente alla fine di tutti i fogli di lavoro del tuo file di lavoro; ignora questo foglio di lavoro perché scomparirà automaticamente quando il file di lavoro viene chiuso.


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
Funzionalità popolari: Trova, evidenzia o identifica duplicati | Elimina righe vuote | Combina colonne o celle senza perdere dati | Arrotonda
Super RICERCA.VERT: Ricerca con criteri multipli    Ricerca 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 a selezione multipla….
Gestione colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia lo stato di 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 & Foglio di lavoro | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email da elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
I15 migliori kit di strumenti:12 strumenti di testo (Aggiungi testo, Elimina Caratteri Specifici, ...) | Oltre50 tipi di grafici (Diagramma di Gantt, ...) | Oltre40 formule utili (Calcola l'età in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci immagine dal percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti per unire & dividere (Unione avanzata righe, Dividi celle, ...) | ...e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre!

Migliora le tue competenze su Excel con Kutools per Excel e sperimenta un nuovo livello di efficienza. 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 su Office, rendendo il tuo lavoro molto più semplice

  • Abilita la modifica a schede e la lettura 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 ti fa risparmiare centinaia di clic ogni giorno!