Excel VBA – Excel’deki Verileri Combobox’a Alma

Bu yazımda Excel deki belli bir hücre veya hücrelerdeki verileri UserForm üzerindeki oluşturmuş olduğumuz Combobox’a almak için olan yöntemleri örneklerle resimli ve videolu bir şekilde anlatmaya çalışacağım.

Excel sayfasında “A” sütunundaki verileri Combobox1 içerisine almaya çalıştığımızı varsayarak yapmamız gerekenler sırasıyla;

Örnek -1
VBA pencerimizde UserForm üzerindeki combobox seçili iken properties penceresindeki RowSource kısmına öncelikle sayfa adını daha sonra da verilerin bulunduğu hücreleri belirtmemiz gerekir.

Yani Sayfa1!A:A yazdığımızda aslında Sayfa 1 deki A sütunundaki bütün verileri Combobox1 içerisinde listele demiş oluyoruz.

Örnek -2
Yine aynı şekilde Properties penceresindeki RowSource kısmına satır sayısı belirtilerek yapıldığını düşünelim.

Sayfa1!A5:A15 yazdığımızda aslında Sayfa 1 deki A sütunundaki 5. ila 15. verileri Combobox1 içerisinde listele demiş oluyoruz.

Örnek -3

Bu sefer aynı işlemi Properties penceresinden değil kod kısmından örneklerle anlatmaya çalışalım.
En basit şekliyle excel’de “A” Sütunundaki verileri combobox’a almak için kod penceresine aşağıdaki kodları yazmanız yeterlidir.

bu kod ile UserForm yüklenir yüklenmez combobox1’e A sütunundaki tüm veriler alınır.

Private Sub UserForm_Initialize()
ComboBox1.RowSource = “‘Sayfa1’!A:A”
End Sub

Örnek -4

Bu kodda ise UserForm yüklenir yüklenmez combobox1’e A sütunundaki 5. satır ile 15. satır arasındaki veriler alınır.

Private Sub UserForm_Initialize()
ComboBox1.RowSource = “‘Sayfa1’!A5:A15”
End Sub

Örnek -5

Farklı bir durum olarak hücredeki verileri isimlendirerek combobox’a alma işlemi yapabiliriz. Böylelikle hücre ve sayfa belirtmek durumundan da kurtulabiliriz.

Bunun için öncelikle excel sayfamızdaki combobox’a yüklemek istediğimiz hücreleri seçiyor ve ardından da seçmiş olduğumuz hücrelere ad tanımlıyoruz. Ad tanımlama işlemini kısayol dan fonksiyon çubuğunun en solundan yapabilir veya Formüller sekmesinden Ad Tanımla seçeneği ile de gerçekleştirebiliriz.

Ardından Properties penceresindeki RowSource kısmına direk ismi yazabiliriz.

Yada kod kısmına aşağıdaki gibi yazdığınız da UserForm açılır açılmaz listelenecek tir.

Private Sub UserForm_Initialize()
ComboBox1.RowSource = “isim”
End Sub

Elbette bu göstermiş olduğum yöntemler olayın mantığını kavrayabilmeniz adına en basit şekilleridir. Combobox’a veri yüklerken isteğinize göre farklı kod ihtiyaçları da doğacaktır.

Bu ihtiyaçların sınırsız istekler doğrultusunda doğacağından dolayı hepsini bir arada veremiyorum ama zaman zaman sizlerle başka bazı yöntemleri de paylaşmayı düşünüyorum.

Birçok Örnekle Açıklamasını Yaptığım Excel VBA Combobox Veri Alma Videosunu Aşağıdan İzleyebilirsiniz.



5 yorum

İsmail aydemir · 02 Aralık 2018 02:23 tarihinde

Benim sayfa 1de listbox var. Sayfa2 de veriler var. Listbox A 25 sütunlu veya eklenebilir olmalı. Satırda eklenebilir. Bu 25 sütunlu veriyi nasıl alabilirim. Addıtem sadece 10 veri çekebiliyorum. Acil lütfen

Taylan · 17 Kasım 2018 01:45 tarihinde

İyi Çalışmalar hocam , Combobox ile ilgili bir sorum olacak; excel den verileri çektik listelendi peki listelenen verileri combobaxta seçtiğimizi nasıl sileriz uğraştım beceremedim yardımcı olabilir misiniz?

    Dilaver AJDER · 19 Kasım 2018 13:08 tarihinde

    Merhabalar,
    Maalesef yoğun iş temposu nedeni ile bazen soruları geç fark edebiliyorum. Umarım geç kalmamışımdır.
    Sorunuzun cevabına gelirsek.
    Öncelikle
    ComboBox’ın Change olayına iki satır bir kod ekleyelim.
    Dim x As İnteger
    x=ComboBox1.ListIndex + 1

    Şimdi ise UserForm üzerinde SiL isminde bir buton oluşturup Butonun Click yordamına
    Eğer sadece hücreyi silmek istersek.
    Cells(x, 1).Delete
    yazabiliriz.
    Ama Hücreyi değil satırı silmek istiyorsak.
    Cells(x, 1).EntireRow.Delete
    komutunu yazmanız yeterli olacaktır.

Excel VBA Dersleri ComboBox Kullanımı ile ilgili Bütün Detaylar » Pratik Bilgiler ve İbretlik Hikayeler, Dilaver AJDER · 25 Kasım 2018 16:38 tarihinde

[…] ComboBox ile ilgili birçok veri alma örneğini izleyebileceğiniz sayfamızı da ziyaret edebilirs… (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); […]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d blogcu bunu beğendi: