Come salvare o mantenere le selezioni delle caselle di riepilogo ActiveX in Excel?
Supponiamo che tu abbia creato alcune caselle di riepilogo e fatto delle selezioni al loro interno, tuttavia tutte le selezioni vengono perse alla chiusura e successiva riapertura della cartella di lavoro. Desideri mantenere le selezioni effettuate nelle caselle di riepilogo ogni volta che chiudi e riapri la cartella di lavoro? Il metodo descritto in questo articolo può aiutarti.
Salva o mantieni le selezioni delle caselle di riepilogo ActiveX con codice VBA in Excel
Salva o mantieni le selezioni delle caselle di riepilogo ActiveX con codice VBA in Excel
Il seguente codice VBA ti permette di salvare o mantenere le selezioni effettuate nelle caselle di riepilogo ActiveX in Excel. Segui attentamente le istruzioni riportate di seguito.
1. Nella cartella di lavoro contenente le caselle di riepilogo ActiveX di cui desideri conservare le selezioni, premi contemporaneamente i tasti Alt+F11 per aprire la finestra di Microsoft Visual Basic for Applications.
2. Nella finestra di Microsoft Visual Basic for Applications, fai doppio clic su ThisWorkbook nel riquadro a sinistra per aprire la finestra del codice di ThisWorkbookCodice. Quindi, 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 
3. Premi i tasti Alt+Q per chiudere la finestra di Microsoft Visual Basic for Applications.
4. Ora devi salvare la cartella di lavoro come cartella di lavoro abilitata alle macro di Excel. Fai clic su File > Salva con nome > Sfoglia.

5. Nella finestra di dialogo Salva con nome, seleziona una cartella in cui salvare la cartella di lavoro, rinominala se necessario, scegli Cartella di lavoro abilitata alle macro di Excel dall’elenco a discesa Specifica formato di salvataggio e infine fai clic sul pulsante Salva. Vedi screenshot:

Ricorda di salvare la cartella di lavoro ogni volta che aggiorni le caselle di riepilogo: così facendo, tutte le tue selezioni precedenti saranno mantenute al riavvio del file.
Nota: durante il salvataggio della cartella di lavoro, verrà creata automaticamente una scheda denominata «ListBox Data» alla fine di tutte le schede. Ignorala pure: scomparirà automaticamente alla chiusura della cartella di lavoro.
Migliori Strumenti per la Produttività in Office
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.
- 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