contact@exceltr.com

ExcelTR - Microsoft Excel Eğitim Sitesi

Görsel Video Microsoft Excel Eğitim Sitesi
21 Haz 2012

VBA Combobox Doldurma Yontemleri

//
Yorumlar8
/
Etiketler,

VBA ile combobox`lariniza veri eklemenin iki farkli yolundan bahsedecegiz bu konumuzda sizlere. Bunlarin ilki additem yontemi ile combobox`larimiza veri eklemek, ikincisi ise combobox`imizin lis ozelligini kullanmak.

Bu orneklerimiz icin sizlere bir kod ornegi ile ornek bir dosya hazirladik, inceleyiniz.

Sub Combobox()
         Dim Aylar As Variant
         Dim Yillar As Variant
         Dim i As Integer

         'Araliklar
         Aylar = Array("Ocak", "Subat", "Mart", "Nisan", "Mayis", "Haziran", _
                        "Temmuz", "Agustos", "Eylul", "Ekim", "Kasim", "Aralik")
         Yillar = Array(2012, 2013)

         'AddItem methodu ile aylari doldurma
         For i = LBound(Aylar) To UBound(Aylar)
             sayfa1.ComboBox1.AddItem Aylar(i)
         Next i
         'List methodu ile aylari doldurma
         sayfa1.ComboBox2.List = WorksheetFunction.Transpose(Yillar)         
         'sayfa1.ComboBox2.List = WorksheetFunction.Transpose(Yillar)
End Sub

VBA Combobox Doldurma

Degerleri Tek Tek Ekleme

Sub Combobox_Tektek()
'combobox ismini ve sayfa adini degistirerek kullanin.
With Sheet1.Shapes("Combobox1").ControlFormat
.RemoveAllItems
.AddItem "Ocak"
.AddItem "Subat"
.AddItem "Mart"
End With
End Sub

Degerleri Araliktan Alma

Sub Combobox_Araliktan_Alma()
'combobox ismini ve sayfa adini degistirerek kullanin.
With Sheet1.Shapes("Combobox1").ControlFormat
'Araligi Degistirin.
.ListFillRange = "Sheet1!$a$1:$a$5"
End With
End Sub

Degerleri Araliktan Alma

Sub Combobox_Araliktan_Alma()

Dim rng As Range, cl As Range
'Araligi degistirin.
Set rng = Sheet1.Range("a1:a5")
'combobox adini ve sayfa adini degistirin.
With Sheet1.Shapes("Combobox1").ControlFormat
.RemoveAllItems
For Each cl In rng
.AddItem cl.Value
Next
End With

End Sub

Degerleri Araliktan Alma

Sub Combobox_Araliktan_Alma()
Dim arr, i As Long
'Araligi degistirin.
arr = Sheet1.Range("a1:a5")
'Combobox adini ve sayfa adini degistirin
With Sheet1.Shapes("combobox1").ControlFormat
.RemoveAllItems
For i = LBound(arr) To UBound(arr)
.AddItem arr(i, 1)
Next
End With

End Sub

Degerleri Araliktan Alma

Sub Secilen_degerler()
'Sayfa adini ve combobox adini degistirin.
With Sheet1.Shapes("Combobox1").ControlFormat
MsgBox .List(.ListIndex)
End With
End Sub

 

8 % yanıt

    1. Merhaba uyariniz uzerine dosyadan da kontrol ettim fakat kod calismakta.

      Koddaki ;

      WorksheetFunction.Transpose(Yillar)

      Bolumunu;

      WorksheetFunction.Transpose(Aylar)

      Seklinde de degistirerek test edebilirsiniz.

      (Calismayi actiginizda Kodu VB editor penceresinden calistiriniz.)

  1. enlil1971

    merhaba,
    aylar için array değerlerini belli bir aralığı verebiliyormuyuz. mesela A1:A2000 gibi

    yapmak istediğim kayıt altına aldığım tüm firma isimlerini bu kolona kayıt etmek ve otomatik olarak combobox a düşmesini sağlamak. tşk

      1. enlil1971

        cevabınız için tşk ederim öncelikle. ancak veri doğrulama ile açılır kutu içine yazı yazamıyorum. benim ek olarak yapmak istediğim şey combobox içine yazdığım harfe göre filtrelemede yapması. yani hem combobox içine veri alıp gerektiğinde seçebilmek gerektiğindede yazabilmek. bunu yapmak mümkünmüdür acaba

  2. TURKPLUS

    Merhaba yeni bir konu açamadığım için ilgili bu başlık altında sormak istediğim bir konu var.

    Kendi örnek çalışmamda diyelim ki B ve D sütunlarında Validate ile oluşturulmuş bir personel listesi var
    B ve D sütunlarında boş bir hücreye tıklandığında liste ortaya çıkıyor. Bu liste çok uzun bir liste olabilir. Bu yüzden liste içinde kaydırma yaparak personel seçimi yapmak pratik değil. Bu nedenle hücreye tıklanıp, bir yada birkaç harf girerek, sadece o harf ile başlayan isimleri filtre ederek aramayı ve seçimi kolaylaştırmak için ne yapılabilir?

    İnternette araştırdığım kadarıyla buna AutoComplete yani otomatik tamamlama özelliği adı veriliyor. Ancak nasıl yapıldığına dair bilgiler karışık. AutoComplete özelliğinin ComboBox’lar ile yapılabildiğine dair örnekler var. Ancak Validate ile oluşturulan listede nasıl yapılacağı ile ilgili bilgi bulamadım.

    Örnek dosyamı burada nasıl paylaşabileceğimi bilemediğim için dosyayı iletemedim. Bir yolu varsa söylerseniz dosyayı eklerim.

    İyi çalışmalar

Cevap bırakın


4 + 1 =