Comment enregistrer ou conserver des sélections de zones de liste ActiveX dans Excel?
En supposant que vous ayez créé des zones de liste et effectué des sélections dans les zones de liste, cependant, toutes les sélections de ces zones de liste sont supprimées lorsque vous fermez et rouvrez le classeur. Voulez-vous conserver les sélections effectuées dans les zones de liste chaque fois que vous fermez et rouvrez le classeur? La méthode de cet article peut vous aider.
Enregistrer ou conserver les sélections de zones de liste ActiveX avec le code VBA dans Excel
Enregistrer ou conserver les sélections de zones de liste ActiveX avec le code VBA dans Excel
Le code VBA ci-dessous peut vous aider à enregistrer ou à conserver les sélections dans les zones de liste ActiveX dans Excel. Veuillez faire comme suit.
1. Dans le classeur contient les zones de liste ActiveX dont vous souhaitez conserver les sélections, appuyez sur la touche autre + F11 touches simultanément pour ouvrir le Microsoft Visual Basic pour applications fenêtre.
2. dans le Microsoft Visual Basic pour applications fenêtre, double-cliquez Ce classeur dans le volet gauche pour ouvrir le Ce classeur Code la fenêtre. Et puis copiez le code VBA suivant dans la fenêtre de code.
Code VBA: enregistrer les sélections de zones de liste ActiveX dans 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. appuie sur le autre + Q touches pour fermer le Microsoft Visual Basic pour applications fenêtre.
4. Vous devez maintenant enregistrer le classeur en tant que classeur Excel prenant en charge les macros. Cliquez s'il vous plait Déposez votre dernière attestation > Enregistrer sous > Explorer.
5. dans le Enregistrer sous boîte de dialogue, sélectionnez un dossier pour enregistrer le classeur, renommez-le selon vos besoins, sélectionnez Cahier de travail Excel avec macro-activé dans le Enregistrer en tant que type de liste déroulante, et enfin cliquez sur le Enregistré bouton. Voir la capture d'écran:
Veuillez enregistrer le classeur chaque fois que vous mettez à jour les zones de liste. Ensuite, toutes les sélections précédentes seront conservées dans les zones de liste après la réouverture du classeur.
Notes: Lors de l'enregistrement du classeur, une feuille de calcul nommée "Données ListBox»Sera créé automatiquement à la fin de toutes les feuilles de calcul de votre classeur, veuillez ignorer cette feuille de calcul car elle disparaîtra automatiquement lorsque le classeur sera fermé.
Meilleurs outils de productivité bureautique
Améliorez vos compétences Excel avec Kutools for Excel et faites l'expérience d'une efficacité comme jamais auparavant. Kutools for Excel offre plus de 300 fonctionnalités avancées pour augmenter la productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et facilite grandement votre travail
- Activer l'édition et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de 50% et réduit des centaines de clics de souris chaque jour!