Bu dosya, bir sütunda tekrar eden değerlerin ComboBox içinde yalnızca bir kez listelenmesini sağlayan VBA örneğidir. Firma adları VERİ sayfasının A sütunundan alınır, benzersiz hale getirilir, A'dan Z'ye sıralanır ve UserForm üzerindeki ComboBox'a yüklenir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosya makro içerir, açarken makroları etkinleştirmeniz gerekir.
Dosyanın içeriği
- VERİ: A1 hücresinde "FİRMALAR" başlığı bulunur. A sütununda "Z FİRMASI", "Ş FİRMASI", "T FİRMASI" gibi firma adları yer alır. Sayfanın kullanılan alanı A1:G5001 aralığıdır.
- SÜZ: Benzersiz ve sıralanmış firma listesinin yazıldığı yardımcı sayfadır. ComboBox bu sayfadaki listeyi kaynak olarak kullanır.
- UserForm1: Firma listesini gösteren ComboBox1 denetimini içeren form.
Makrolar
- TEST: Sayfa1 modülünde bulunur ve UserForm1'i açar.
- UserForm_Initialize: Form açılırken çalışır. Ekran güncellemesini kapatır, VERİ sayfasını seçer ve Firma_Adı_Güncelle yordamını çağırır. Ardından ComboBox1.RowSource değerini, SÜZ sayfasında A1 hücresinden A sütunundaki son dolu satıra kadar olan aralık olarak belirler.
- Firma_Adı_Güncelle: VERİ sayfasının A sütununa AdvancedFilter yöntemini Unique:=True ayarıyla uygular. Böylece tekrar eden kayıtlar gizlenir. Görünen değerler kopyalanır ve SÜZ sayfasına değer olarak yapıştırılır. Liste A sütununda artan sırada sıralanır, ardından VERİ sayfasındaki filtre ShowAllData ile kaldırılır.
Nasıl kullanılır
- Dosyayı açın ve makroları etkinleştirin.
- VERİ sayfasının A sütununa firma adlarını girin. A1 hücresi başlık olarak kalmalıdır.
- Alt+F8 ile TEST makrosunu çalıştırın.
- Açılan formda ComboBox listesini açın. Firma adları tekrarsız ve sıralı olarak görüntülenir.
- Veriler değiştiğinde makroyu yeniden çalıştırın. Liste form her açıldığında güncellenir.