Bu dosya, bir UserForm üzerindeki TextBox'a yazılan harflere göre ListBox içindeki isimlerin nasıl filtreleneceğini gösteren makrolu bir örnektir. Dosya yalnızca bu işleve odaklanan kısa bir koda sahiptir; nesnelerin birlikte çalışma mantığını sade bir yapı üzerinden öğrenmek için hazırlanmıştır.
Dosyanın içeriği
- Sayfa1: A1 hücresinde ADI başlığı, A2 hücresinden itibaren isim listesi (Ahmet, Ali, Aslı, Aycan, Bahadır gibi) yer alır. Veri A1:B31 aralığındadır.
- UserForm1: İçinde TextBox98 adlı arama kutusu ve ListBox1 adlı liste bulunur.
Makrolar
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir. Kodda dosya silme ya da dışarıya bağlantı gibi zararlı bir işlem yoktur. UserForm1 içinde iki prosedür bulunur:- UserForm_Initialize: Form açıldığında çalışır. Sayfa1'deki A2:B aralığını A sütununa göre A'dan Z'ye sıralar, ardından A sütunundaki son dolu satıra kadar tüm isimleri ListBox1'e ekler.
- textbox98_Change: TextBox98'e her harf yazıldığında veya silindiğinde çalışır. ListBox1'i temizler, A2'den son dolu satıra kadar isimleri tek tek dolaşır ve büyük/küçük harf farkı gözetmeden, yazılan metinle başlayan isimleri listeye ekler. Kutu boşaltıldığında liste yeniden tam görünür.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- Alt+F11 ile VBA düzenleyicisini açın, Project bölümünden UserForm1 nesnesini seçip F5 ile formu çalıştırın.
- Açılan formda ListBox1 isimleri alfabetik sırayla listeler.
- TextBox'a isimin ilk harflerini yazın; liste yazdıkça daralır.
- Kendi verinizle denemek için Sayfa1'in A sütunundaki isimleri değiştirin; kod son dolu satırı otomatik bulur.