Wie kann man die Auswahl in ActiveX-Listenfeldern in Excel speichern oder beibehalten?
Angenommen, Sie haben einige Listenfelder erstellt und darin eine Auswahl getroffen – doch beim Schließen und erneuten Öffnen der Arbeitsmappe sind alle Ihre Auswahlmarkierungen verschwunden. Möchten Sie, dass die in den Listenfeldern getroffenen Auswahlen auch nach dem Schließen und erneuten Öffnen der Arbeitsmappe erhalten bleiben? Die Methode in diesem Artikel hilft Ihnen dabei.
Auswahl von ActiveX-Listenfeldern mithilfe von VBA-Code in Excel speichern oder beibehalten
Auswahl von ActiveX-Listenfeldern mithilfe von VBA-Code in Excel speichern oder beibehalten
Der folgende VBA-Code unterstützt Sie dabei, die Auswahl in ActiveX-Listenfeldern in Excel zu speichern und beizubehalten. Gehen Sie dazu wie folgt vor:
1. Drücken Sie in der Arbeitsmappe, die die ActiveX-Listenfelder enthält, deren Auswahl Sie beibehalten möchten, gleichzeitig die Tasten Alt + F11, um das Fenster Microsoft Visual Basic for Applications zu öffnen.
2. Doppelklicken Sie im Fenster Microsoft Visual Basic for Applications im linken Bereich auf DieseArbeitsmappe, um das Code-Fenster für DieseArbeitsmappe zu öffnen. Fügen Sie anschließend den folgenden VBA-Code in das Code-Fenster ein.
VBA-Code: Auswahl von ActiveX-Listenfeldern in Excel speichern
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. Drücken Sie die Tasten Alt + Q, um das Fenster Microsoft Visual Basic for Applications zu schließen.
4. Speichern Sie die Arbeitsmappe nun als Excel-Arbeitsmappe mit Makros. Klicken Sie dazu auf Datei > Speichern unter > Durchsuchen.

5. Wählen Sie im Dialogfeld Speichern unter den gewünschten Speicherort für die Arbeitsmappe aus, geben Sie ihr gegebenenfalls einen neuen Namen, wählen Sie im Dropdown-Menü unter Speichern im Format die Option Excel-Arbeitsmappe mit Makros aus und klicken Sie abschließend auf die Schaltfläche Speichern. Siehe Screenshot:

Speichern Sie die Arbeitsmappe jedes Mal, wenn Sie die Listenfelder aktualisieren. Dadurch bleiben alle vorherigen Auswahlen in den Listenfeldern nach dem erneuten Öffnen der Arbeitsmappe erhalten.
Hinweis: Beim Speichern der Arbeitsmappe wird automatisch ein Arbeitsblatt mit dem Namen „ListBox Data“ am Ende aller Arbeitsblätter Ihrer Arbeitsmappe erstellt. Ignorieren Sie dieses Arbeitsblatt – es verschwindet automatisch wieder, sobald Sie die Arbeitsmappe schließen.
Beste Office-Produktivitätstools
Verbessern Sie Ihre Excel-Kenntnisse mit Kutools für Excel und erleben Sie Effizienz wie nie zuvor.Kutools für Excel bietet über 300 erweiterte Funktionen zur Steigerung der Produktivität und Zeit sparen.Klicken Sie hier, um die Funktion zu erhalten, die Sie am dringendsten benötigen...
Office Tab bringt eine tabbasierte Oberfläche in Office und macht Ihre Arbeit viel einfacher
- Aktivieren Sie tabbasiertes Bearbeiten und Lesen in Word, Excel, PowerPoint, Publisher, Access, Visio und Project.
- Öffnen und erstellen Sie mehrere Dokumente in neuen Registerkarten desselben Fensters – statt jedes in einem separaten Fenster zu öffnen.
- Steigert Ihre Produktivität um 50 % und erspart Ihnen täglich Hunderte von Mausklicks!
Alle Kutools-Add-Ins – ein Installationsprogramm
Kutools for Office-Paket bündelt Add-Ins für Excel, Word, Outlook und PowerPoint sowie Office Tab Pro – ideal für Teams, die mit mehreren Office-Anwendungen arbeiten.
- Alles-in-einem-Paket— Add-Ins für Excel, Word, Outlook & PowerPoint sowie Office Tab Pro
- Ein Installationsprogramm, eine Lizenz— innerhalb weniger Minuten eingerichtet (MSI-fähig)
- Funktioniert besser zusammen— optimierte Produktivität über alle Office-Anwendungen hinweg
- 30-tägige Vollversion zum Testen— keine Registrierung, keine Kreditkarte erforderlich
- Bestes Preis-Leistungs-Verhältnis— sparen Sie im Vergleich zum Kauf einzelner Add-Ins