Hoe selecties van ActiveX-lijstvakken in Excel opslaan of behouden?
Stel dat je enkele lijstvakken hebt gemaakt en selecties hebt gemaakt in deze lijstvakken, maar alle selecties zijn verdwenen wanneer je het werkboek sluit en opnieuw opent. Wil je de selecties die in de lijstvakken zijn gemaakt behouden, ongeacht wanneer je het werkboek sluit en opnieuw opent? De methode in dit artikel kan je helpen.
Selecties van ActiveX-lijstvakken opslaan of behouden met VBA-code in Excel
Selecties van ActiveX-lijstvakken opslaan of behouden met VBA-code in Excel
De onderstaande VBA-code kan je helpen bij het opslaan of behouden van selecties in ActiveX-lijstvakken in Excel. Volg de volgende stappen.
1. Druk in het werkboek dat de ActiveX-lijstvakken bevat waarvan je de selecties wilt behouden, gelijktijdig op de toetsen Alt + F11 om het Microsoft Visual Basic for Applications-venster te openen.
2. Dubbelklik in het Microsoft Visual Basic for Applications-venster op ThisWorkbook in het linkerpaneel om het ThisWorkbook Code-venster te openen. Kopieer vervolgens de volgende VBA-code naar het codevenster.
VBA-code: Selecties van ActiveX-lijstvakken in Excel opslaan
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 de toetsen Alt + Q om het Microsoft Visual Basic for Applications-venster te sluiten.
4. Nu moet je het werkboek opslaan als een werkboek met macro's ingeschakeld voor Excel. Klik op Bestand > Opslaan als > Bladeren.
5. Selecteer in het Opslaan als dialoogvenster een map om het werkboek op te slaan, hernoem het indien nodig, selecteer Excel Macro-Enabled Workbook in de vervolgkeuzelijst Opslaakstype, en klik ten slotte op de knop Opslaan. Zie screenshot:
Sla het werkboek elke keer op wanneer je de lijstvakken bijwerkt. Alle vorige selecties blijven dan bewaard in de lijstvakken nadat je het werkboek opnieuw hebt geopend.
Opmerking: Wanneer je het werkboek opslaat, wordt er automatisch een werkblad met de naam “ListBox Data” aangemaakt aan het einde van alle werkbladen van je werkboek. Negeer dit werkblad, omdat het automatisch verdwijnt wanneer het werkboek wordt gesloten.
Beste productiviteitstools voor Office
Verbeter je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te kiezen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Activeer tabbladbewerking en -lezen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!
Alle Kutools-invoegtoepassingen. Eén installatieprogramma
Kutools for Office-suite bundelt invoegtoepassingen voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro, ideaal voor teams die werken met Office-toepassingen.





- Alles-in-één suite — invoegtoepassingen voor Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Eén installatieprogramma, één licentie — in enkele minuten geïnstalleerd (MSI-ready)
- Werkt beter samen — gestroomlijnde productiviteit over meerdere Office-toepassingen
- 30 dagen volledige proef — geen registratie, geen creditcard nodig
- Beste prijs — bespaar ten opzichte van losse aanschaf van invoegtoepassingen