Excel'de ActiveX liste kutularının seçimlerini nasıl kaydedebilir veya koruyabilirsiniz?
Diyelim ki bazı liste kutuları oluşturdunuz ve bu liste kutularında seçimler yaptınız, ancak çalışma kitabını kapattığınızda ve yeniden açtığınızda bu liste kutularının tüm seçimleri kayboluyor. Çalışma kitabını her kapattığınızda ve 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 VBA kodu ile ActiveX liste kutularının seçimlerini kaydetme veya koruma
Excel'de VBA kodu ile ActiveX liste kutularının seçimlerini kaydetme veya koruma
Aşağıdaki VBA kodu, Excel'deki ActiveX liste kutularının seçimlerini kaydetmenize veya korumanıza yardımcı olabilir. Lütfen şu adımları izleyin.
1. Seçimleri korumak istediğiniz ActiveX liste kutularını içeren çalışma kitabında, Microsoft Visual Basic for Applications penceresini açmak için Alt + F11 tuşlarına aynı anda basın.
2. Microsoft Visual Basic for Applications penceresinde, sol bölmedeki ThisWorkbook öğesine çift tıklayın, ThisWorkbook Kod 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. Şimdi çalışma kitabını bir Excel Makro özellikli çalışma kitabı olarak kaydetmeniz gerekiyor. Lütfen Dosya > Farklı Kaydet > Gözat'a tıklayın.
5. Farklı Kaydet iletişim kutusunda, çalışma kitabını kaydetmek için bir klasör seçin, ihtiyacınız olan şekilde yeniden adlandırın, Kaydetme Biçimini Belirt açılır listesinden Excel Makro özellikli Çalışma Kitabı'nı seçin ve son olarak Kaydet düğmesine tıklayın. Ekran görüntüsüne bakın:
Lütfen liste kutularını her güncellediğinizde çalışma kitabını kaydedin. Daha sonra tüm önceki seçimler, çalışma kitabı yeniden açıldıktan sonra liste kutularında kalacaktır.
Not: Çalışma kitabını kaydederken, çalışma kitabınızdaki tüm çalışma sayfalarının sonuna otomatik olarak "ListBox Data" adlı bir çalışma sayfası oluşturulacaktır, lütfen bu çalışma sayfasını görmezden gelin çünkü çalışma kitabı kapandığında otomatik olarak kaybolacaktır.
En İyi Ofis Verimlilik Araçları
Kutools for Excel ile Excel becerilerinizi güçlendirin, daha önce hiç yaşamadığınız bir verimlilik deneyimini yaşayın. Kutools for Excel, üretkenliğinizi artıracak ve zamanı kaydetmenizi sağlayacak300’den fazla gelişmiş özellik sunar. En çok ihtiyaç duyduğunuz özelliği almak için buraya tıklayın...
Office Tab, Office’e sekmeli arayüz kazandırır ve işinizi çok daha kolaylaştırır
- Word, Excel, PowerPoint’te sekmeli düzenleme ve okuma işlevini etkinleştirin.
- Aynı pencere içerisinde yeni sekmelerde birden fazla belge açın veya oluşturun, yeni pencerelerde açmak yerine.
- Verimliliğinizi %50 artırın, her gün yüzlerce fare tıklamasını sizin için azaltın!