Hoe bewaart of behoudt u gemaakte selecties in ActiveX-keuzelijsten in Excel?
Stel dat u enkele keuzelijsten hebt gemaakt en selecties hebt gedaan in deze lijsten, maar dat alle selecties verdwijnen wanneer u de werkmap sluit en opnieuw opent. Wilt u de gemaakte selecties in de keuzelijsten behouden bij het sluiten en opnieuw openen van de werkmap? De methode in dit artikel kan u daarbij helpen.
Selecties van ActiveX-keuzelijsten opslaan of behouden met VBA-code in Excel
Selecties van ActiveX-keuzelijsten opslaan of behouden met VBA-code in Excel
De onderstaande VBA-code helpt u om selecties in ActiveX-keuzelijsten in Excel te behouden of op te slaan. Volg hiervoor de volgende stappen.
1. Druk in de werkmap met de ActiveX-keuzelijsten waarvan u de selecties wilt behouden tegelijkertijd op Alt+F11 om het venster Microsoft Visual Basic for Applications te openen.
2. Dubbelklik in het venster Microsoft Visual Basic for Applications in het linkerdeelvenster op ThisWorkbook om het codevenster van ThisWorkbook Code te openen. Kopieer vervolgens de volgende VBA-code naar het codevenster.
VBA-code: Selecties van ActiveX-keuzelijsten opslaan 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. Druk op Alt + Q om het venster Microsoft Visual Basic for Applications te sluiten.
4. Sla de werkmap nu op als een macro-inschakelbare Excel-werkmap. Klik hiervoor op Bestand > Opslaan als > Bladeren.

5. Selecteer in het dialoogvenster Opslaan als de gewenste locatie om de werkmap op te slaan, geef deze eventueel een nieuwe naam, kies Excel-macro-inschakelbare werkmap in de vervolgkeuzelijst Opmaak opgeven voor opslaan en klik ten slotte op de knop Opslaan. Zie de schermafbeelding:

Sla de werkmap telkens op wanneer u de keuzelijsten aanpast, zodat alle eerdere selecties behouden blijven nadat u de werkmap opnieuw opent.
Opmerking: Bij het opslaan van de werkmap wordt automatisch een werkblad met de naam „ListBox Data” toegevoegd aan het einde van alle werkbladen in uw werkmap. Negeer dit werkblad — het verdwijnt automatisch zodra u de werkmap sluit.
Beste Office-productiviteitshulpmiddelen
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...
Office Tab brengt een tabbladinterface naar Office en maakt uw werk veel eenvoudiger
- Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
- Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!
Alle Kutools-add-ins in één installatieprogramma.
Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.
- Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
- Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
- Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
- 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
- Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins