Bu dosya, UserForm üzerindeki iki TextBox'a yazılan tarihler arasında kalan kayıtların ListBox nesnesinde nasıl listeleneceğini gösterir. Listeleme, Excel VBA'nın yerleşik özellikleri (AutoFilter ve ListBox.Column) ile yapılır. Çok büyük veri kümeleri için ADO yöntemi tercih edilmelidir.
Dosyanın içeriği
- Sayfa1: A1:J647 aralığında veri bulunur. A1 hücresinde TARİH başlığı yer alır; A sütununda 14.06.2017 ile başlayan tarihler sıralanır.
- UserForm1: İki TextBox (başlangıç ve bitiş tarihi), bir CommandButton ve sonuçların gösterildiği ListBox1 nesnesini içerir.
- Module1: Formu açan makroyu barındırır.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodda dosya silme veya dışarıya bağlantı gibi zararlı bir işlem yoktur.- Düğme1_Tıkla (Module1): UserForm1 formunu açar. Form modelsiz (modeless) gösterildiği için form açıkken sayfa kullanılabilir.
- CommandButton1_Click (UserForm1): Önce sayfadaki mevcut filtreyi kaldırır. Ardından A sütununa, TextBox1 değerinden büyük veya eşit ve TextBox2 değerinden küçük veya eşit olacak şekilde tarih filtresi uygular. Filtre sonrası görünen satırlar A:B sütunlarından okunarak bir diziye alınır ve ListBox1'e iki sütun olarak aktarılır. Tarih sütunu gg.aa.yyyy biçiminde gösterilir, sütun başlıkları gösterilmez. İşlem sonunda filtre kapatılır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Sayfadaki düğmeye tıklayarak UserForm1 formunu açın.
- Başlangıç tarihini TextBox1'e, bitiş tarihini TextBox2'ye gg.aa.yyyy biçiminde yazın (örneğin 15.06.2017 ve 19.06.2017).
- CommandButton1 düğmesine tıklayın; bu aralığa denk gelen kayıtlar ListBox1'de listelenir.
- Kendi verinizi kullanmak için Sayfa1'deki A sütununa tarih, B sütununa ilgili bilgiyi girin.