Bu dosya, bir UserForm üzerindeki 3 ComboBox ile tabloda gelişmiş arama yapmayı ve eşleşen kayıtları ListBox'ta listelemeyi gösteren VBA örneğidir. Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- Bul sayfası: A sütununda İsim, C sütununda Bölüm başlığı bulunur. Örnek veri olarak 11 kayıt (Gökhan, Bülent, Erkan, Ayşe vb.) ve İK, Muhasebe, Bilgi İşlem bölümleri yer alır. Sayfada formül yoktur.
- UserForm1: Üç ComboBox, üç Label, arama ve kapatma düğmeleri ile sonuçların gösterildiği bir ListBox içerir.
- Module1: Formu açan Form_Ac makrosunu barındırır.
Makrolar
- Form_Ac: UserForm1'i açar. Makro menüsünden veya bir düğmeye atanarak çalıştırılır.
- UserForm_Initialize: Form açılırken seçili hücrenin bulunduğu tablo bölgesini (CurrentRegion) alır. İlk üç sütunun başlıkları Label'lara yazılır, sütun verileri ComboBox'ların listesi olarak bağlanır. Tablo en az iki satırdan oluşmuyorsa "Tablonun Üstüne Gidin" uyarısı verilir ve form kapanır.
- ComboBox1_Change ve ComboBox2_Change: Seçimler kademelidir. İkinci ComboBox ilk seçim yapılınca, üçüncüsü ikinci seçim yapılınca etkinleşir.
- CommandButton1_Click: İlk ComboBox seçimi zorunludur; boşsa uyarı verilir. İlk değer birinci sütunda Find ile aranır, diğer iki seçim ise yan sütunlarda Like ile denetlenir. Boş bırakılan seçim "*" kabul edilir. Eşleşen kayıtların adresleri ListBox'a eklenir; eşleşme yoksa "Eşleşme Bulunamadı" mesajı çıkar.
- ListBox1_DblClick: Listedeki bir satıra çift tıklanınca ilgili hücreye gidilir.
- CommandButton2_Click: Formu kapatır. UserForm_Terminate değişkenleri temizler.
Nasıl kullanılır
- Dosyayı açıp makroları etkinleştirin.
- Bul sayfasında veri tablosunun içindeki bir hücreyi seçin.
- Form_Ac makrosunu çalıştırın.
- Birinci ComboBox'tan bir değer seçin; isterseniz ikinci ve üçüncü ComboBox'ı da seçin.
- Arama düğmesine tıklayın ve ListBox'taki sonuçlara çift tıklayarak hücreye gidin.