Excel'de ActiveX liste kutularındaki seçimleri nasıl kaydedebilir veya koruyabilirsiniz?
Bazı liste kutuları oluşturduğunuzu ve bu kutularda seçimler yaptığınızı varsayalım. Ancak çalışma kitabını kapatıp tekrar açtığınızda bu liste kutularının tüm seçimleri kayboluyor. Çalışma kitabını kapatıp yeniden açtığınızda liste kutularında yapılan seçimleri korumak ister misiniz? Bu makaledeki yöntem size yardımcı olabilir.
Excel'de ActiveX liste kutularının seçimlerini VBA koduyla kaydetme veya koruma
Excel'de ActiveX liste kutularının seçimlerini VBA koduyla kaydetme veya koruma
Aşağıdaki VBA kodu, Excel'de ActiveX liste kutularınızın seçimlerini kaydetmenize veya korumanıza yardımcı olur. Lütfen aşağıdaki adımları uygulayın.
1. Seçimlerini korumak istediğiniz ActiveX liste kutularını içeren çalışma kitabında, Alt+F11 tuşlarına aynı anda basarak Microsoft Visual Basic for Applications penceresini açın.
2. Microsoft Visual Basic for Applications penceresinde, sol bölmede yer alan ThisWorkbook öğesine çift tıklayarak ThisWorkbook Kodu penceresini açın. Ardından aşağıdaki VBA kodunu kod penceresine kopyalayın.
VBA kodu: Excel'de ActiveX liste kutularının seçimlerini kaydetme
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. Microsoft Visual Basic for Applications penceresini kapatmak için Alt + Q tuşlarına basın.
4. Artık çalışma kitabını bir Excel Makro Etkin Kitap olarak kaydetmeniz gerekiyor. Lütfen Dosya > Farklı Kaydet > Göz At seçeneğine tıklayın.

5. Farklı Kaydet iletişim kutusunda, çalışma kitabını kaydetmek için bir klasör seçin, gerekirse yeniden adlandırın, Kaydetme Biçimini Belirt açılır listesinden Excel Makro Etkin Kitap seçeneğini seçin ve son olarak Kaydet düğmesine tıklayın. Ekran görüntüsüne bakın:

Liste kutularını her güncellediğinizde çalışma kitabını kaydetmeyi unutmayın; böylece çalışma kitabını yeniden açtığınızda önceki tüm seçimleriniz liste kutularında korunmuş olur.
Not: Çalışma kitabını kaydettiğinizde, çalışma kitabınızdaki tüm sayfaların sonuna otomatik olarak “ListBox Data” adlı bir çalışma sayfası eklenir. Bu sayfayı dikkate almayın; çünkü çalışma kitabı kapatıldığında otomatik olarak kaybolur.
En İyi Office Üretkenlik Araçları
Excel becerilerinizi Kutools for Excel ile geliştirin ve verimlilikte hiç yaşamadığınız bir deneyim yaşayın.Kutools for Excel, üretkenliği artırmak ve Zamanı Kaydet için 300’den fazla gelişmiş özelliğe sahiptir.İhtiyacınız olan özelliği hemen edinmek için buraya tıklayın…
Office Tab, Office uygulamalarına sekmeli bir arayüz kazandırarak işlerinizi çok daha kolay hale getirir.
- Word, Excel, PowerPoint, Publisher, Access, Visio ve Project'te sekmeli düzenleme ve okuma özelliğini etkinleştirin.
- Belgeleri yeni pencerelerde değil, aynı pencerenin yeni sekmelerinde açıp oluşturun.
- Günlük üretkenliğinizi %50 artırır ve her gün yüzlerce fare tıklamasından tasarruf etmenizi sağlar!
Tüm Kutools eklentileri — tek bir kurulum dosyasında!
Kutools for Office paketi, Excel, Word, Outlook ve PowerPoint eklentilerini ve ayrıca Office Tab Pro’yu içeren kapsamlı bir çözümdür; Office uygulamalarında çalışan ekipler için idealdir.
- Hepsi bir arada paket— Excel, Word, Outlook ve PowerPoint eklentileri + Office Tab Pro
- Tek kurulum, tek lisans— birkaç dakikada hazır (MSI uyumlu)
- Birlikte daha iyi çalışır— Office uygulamalarında akıcı üretkenlik
- 30 günlük tam özellikli deneme— kayıt gerekmez, kredi kartı gerekmez
- En iyi fiyat performans— ayrı ayrı eklenti satın almaya göre tasarruf sağlar