ComboBox Nedir, Nasıl Kullanılır ?

Açılır liste kutusu.

ComboBox Nedir, Nasıl Kullanılır ?

İleti#1)  Tarkan VURAL » 17 Tem 2008 01:48

ComboBox adlı liste şeklinde açılan kutu, veri listeleme, veri seçme gibi olaylarda VBA nesneleri arasında en sık kullanılan nesnelerden biridir.

Görüntüsü genelde TextBox' a yakındır. DropButtonStyle özelliği değiştirilmediği müddetçe varsayılan görüntüsünde sağ yanda aşağı doğru açılmasını sağlayacak ok buton şeklindedir. Textbox gibi görünmesine rağmen kendinde barındırdığı özellikler sayesinde bir veri katarını AddItem , RowSource gibi özellikleri ile içinde listeleyebiliyor. Bu sayede açma tuşuna bastığınızda içinde listelediği veriler arasında seçme şansınız oluyor.

Nesne içerisine veri girilmedi ise açma butonuna bastığınızda aşağıya doğru boş bir satır açılır.
Resim

Şimdi nesne içerisine birkaç yöntemden biri olan AddItem yöntemi ile 2,3 tane veri girelim :

UserForm kod sayfasını açın ve formun Initialize olayına aşağıdaki kodları ekleyin.
Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.AddItem "www.ExcelVBA.Net"
ComboBox1.AddItem "ExceLord"
ComboBox1.AddItem "VBA Makrolar"
End Sub


Kodu çalıştırın. Aldığınız görüntü şu şekilde olacaktır :
Resim

Şimdi diğer bir yöntem olan RowSource ile ComboBox içerisine nasıl veri alınacağını görelim. UserFormu kapatıp Sayfa1 içerisine;
A1 hücresine Excel
A2 hücresine VBA
A3 hücresine Makro
A4 hücresine Fonksiyon
yazın ve UserForm_Initialize olayına önceki kodları silip kodları aşağıdaki gibi ekleyin.

Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A4"
End Sub

Bu kodlama parçası sonusunda Combobox DropButton tıklandığında aşağıdaki görüntüyü elde edeceksiniz.

Resim

ComboBox içerisinde onlarca veri olduğunu düşünelim. Bu verileri ekledikten sonra ComboBox DropButton' u tıkladığınızda tüm verileri karşınıza gelmez. Çünkü görünür durumda varsayılan ayarlara göre sadece sekiz veri olacak ve diğerlerini görmeniz için açılan listenin sağ tarafında aşağıya kaydırma çubuğunu hareket ettirmeniz gerekecek. Peki bu varsayılan adeti değiştiremez miyiz ? Elbette. Tek bir satırlık kod ilavesi ile görünmesini istediğiniz satır sayısının ayarını yapabilirsiniz. Ancak görünümün bozulmaması için görünür satır sayısını abartmamamız gerekiyor.
Kod: Tümünü seç
ComboBox1.ListRows = 16

ile görünür satır sayısını 8 'den 16' ya çıkardık. Şimdi DropButton 'a bastığınızda tek seferde 16 satırı da görebilirsiniz.

Resim

RowSource ile ComboBox'a veri alabileceğiniz farklı bir kaç yöntem daha var.
Bunlarda biri hücrelerde tanımlanmış ad ile yapılabilir. Bunun için Ekle - Ad - Tanımla seçeneklerini seçerek Çalışma kitabınızdaki adlar bölümüne bir başlık yazın ve başvuru yerini seçerek verilerinizin olduğu hücreleri işaretleyin , ardından tamam diyerek çıkmış olun. Kodunuzu artık aşağıdaki gibi yazabilirsiniz:

Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.ListRows = 16
ComboBox1.RowSource = "veriler"
End Sub


Verilerinizin nereden başlayacağını biliyor fakat toplamda kaç adet olduğunu ve nerede sonlandığını bilmiyorsanız, RowSource olayını uzun tutabilirsiniz.
Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!A1:A32000"
End Sub

Ancak bu durumda verilerinizin 32000 'den az olması karşısında ComboBox kaydırma çubuğu ile bir sürü boş satır göreceksiniz. Bu pek de göze hoş gelen bir durum olmasa gerek. Verilerin son bulduğu hücreyi kod ile tespit ederek bunun önlemini alabiliriz. Kodumuzda biraz değişiklik yaparak :

Kod: Tümünü seç
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa1!a1:a" & Range("a65536").End(xlUp).Row
End Sub


ComboBox MatchEntry özelliği ile ComboBox 'a isim yazmaya başladığınızda ismin otomatik tamamlanma ya da manuel girilme istemine etki edebilirsiniz.
MachEntry özelliğinin 3 olayı vardır.
0- fmMatchEntryFirstLetter
1- fmMatchEntryComplete
2- fmMatchEntryNone

fmMatchEntryFirstLetter ile ComboBox içine yazmaya çalıştığınızda her tuşa basışınızda bastığınız harfleri yanyana yazdırmaya müsaade etmeyecek ve sadece basılı harf ile başlayan veriyi bulmaya çalışacaktır.
fmMatchEntryComplete ile ComboBox içine yazmaya çalıştığınızda her tuşa basışınızda harfleri yanyana yazmaya devam etmenize müsaade edecek ve o harfler ile başlayan veriyi bulmaya çalışarak ComboBox 'ta otomatik tamamlama yoluna gidecektir.
Resim
fmMatchEntryNone ile ise hiçbir aramaya gitmeyecek sizin tüm verinizi girmenize müsaade edecektir.

ComboBox1.Clear ile eklenmiş tüm verilerinizi sliebilirsiniz.
ComboBox1.ColumnHeads = True ile verilerinizin başlık sütun adını alabilirsiniz.
ComboBox1.ListStyle = fmListStyleOption ile verilerin başında seçenek düğmesi görünmesini sağlar
ComboBox1.Style = fmStyleDropDownList ile ComboBox içine veri girmesi iptal edilmiş olup sadece aşağı açılan listeden veri seçilmesine izin verilir.

ComboBox1.ShowDropButtonWhen = fmShowDropButtonWhenFocus ile ComboBox görüntümüzün tamamen TextBox görüntüsüne benzemesini sağlayabiliriz. Sadece ComboBox focus'landığında yani seçildiğinde , DropButton görünür ve aşağı açılan listeyi açmanıza yardımcı olur. Bunu denemek istiyorsanız UserForm üserine eklediğiniz ComboBox yanına örneğin bir TextBox ekleyin ve TextBox'ın TabIndex değerini 0 yapın. Formu çalıştırdığınızda iki tane TextBox göreceksiniz.
Resim
Fakat aslında ComboBox olan nesne seçildiğinde ok işaretinin çıkarak liste seçimi için DropButton'un aktif olduğu görünecek.
Resim
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

ComboBox Nedir, Nasıl Kullanılır ?

İleti#2)  Hakan Behcan » 17 Tem 2008 02:20

Ellerine sağlık, teşekkürler.
Kullanıcı avatarı
Hakan Behcan
Yönetim Kurulu
 
Adı Soyadı:Hakan BEHCAN
Kayıt: 15 Haz 2008 03:31
Konum: Çerkezköy - Tekirdağ
Meslek: Belli bir meslek yoktur.
Yaş: 48
İleti: 1354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Çerkezköy

ComboBox Nedir, Nasıl Kullanılır ?

İleti#3)  ngoral » 26 Tem 2008 20:42

Teşekkürler...
Bilim irfan meclisinde aradım buldum talep,
ilim en gerideymiş ..
İLLA EDEP İLLA EDEP
Kullanıcı avatarı
ngoral
Yeni Başlamış
 
Adı Soyadı:Hakan GÖRAL
Kayıt: 15 Haz 2008 02:16
Konum: afyon
Meslek: öğretmen
Yaş: 49
İleti: 40
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: AFYON

ComboBox Nedir, Nasıl Kullanılır ?

İleti#4)  ilker1974 » 28 Tem 2008 14:12

Teşekkürler ellerinize sağlık sağollun
diğer butonlar içinde açıklamalarda bulunursanız seviniriz....

;) ;) ;)
Kullanıcı avatarı
ilker1974
Siteye Alışmış
 
Adı Soyadı:İlker YENİBERTİZ
Kayıt: 17 Haz 2008 09:57
Konum: Excel
Meslek: Kamu'da İdareci
Yaş: 44
İleti: 353
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: K.Maraş

REKLAM
Excel Logo XML Oluşturucu
Logo Object Designer ile Uyarlama

ComboBox Nedir, Nasıl Kullanılır ?

İleti#5)  redheat » 22 Ağu 2008 23:35

süpersiniz arkadaşlar.. aradığım siteyi buldum sanırım.. ben biraz..ım ;) örneksiz anlayamıyorum..Teşekkür.
Kullanıcı avatarı
redheat
 
Adı Soyadı:ahmet ulu
Kayıt: 22 Ağu 2008 01:24
Yaş: 38
İleti: 1
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: karabük

ComboBox Nedir, Nasıl Kullanılır ?

İleti#6)  Ali_ihsan » 09 Ekm 2008 23:14

Combobox ile ayrıntılı ve sağlam bilgilerin için teşekkür ederim.
Kullanıcı avatarı
Ali_ihsan
 
Adı Soyadı:Ali İhsan
Kayıt: 06 Ekm 2008 01:20
İleti: 3
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İzmir-Bornova

REKLAM
ETA - Excel Konsolide Raporlama
ETA Excel Personel Entegre Raporu

ComboBox Nedir, Nasıl Kullanılır ?

İleti#7)  stelci » 27 Ekm 2008 16:50

Dostum ellerine sağlık, sabahtan beri debelendiğim bir konuyu sayende çabucak çözdüm, sağolasın...
Kullanıcı avatarı
stelci
 
Adı Soyadı:Selçuk Telci
Kayıt: 27 Ekm 2008 16:13
İleti: 2
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul

ComboBox Nedir, Nasıl Kullanılır ?

İleti#8)  Tarkan VURAL » 27 Ekm 2008 16:58

:) Rica ederiz arkadaşlar, takıldığınız anda açın bakın, sizlerin bilgilenmesi için yazıyoruz. --)(
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

ComboBox Nedir, Nasıl Kullanılır ?

İleti#9)  hsayar » 28 Ekm 2008 00:42

Tarkan VURAL yazdı::) Rica ederiz arkadaşlar, takıldığınız anda açın bakın, sizlerin bilgilenmesi için yazıyoruz. --)(

Sn. Vural Combobox fare tekerleğinin aktif olması için ne yapılabilir?
Sn Haluk'un önermiş olduğu HookWheel yöntemini kullanıyorum ancak formların show modal özelliği false olunca ve bir formdan diğeri çağrılınca hata veriyor.
yada vbnin comboxunu import edemezmiyiz vbaya ?
Felaket Başa Gelmeden Evvel Önleyici ve Koruyucu Tedbirler Düşünmek Lazım.

Felaket Geldikten Sonra Dövünmenin Yararı Yoktur.

Mustafa Kemal ATATÜRK
Kullanıcı avatarı
hsayar
Site Dostu
 
Adı Soyadı:Hüseyin SAYAR
Kayıt: 18 Eyl 2008 11:30
Meslek: Çalışma Ekonomisti
Yaş: 39
İleti: 600
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Edirne/İpsala

ComboBox Nedir, Nasıl Kullanılır ?

İleti#10)  MAJUHOO » 12 Kas 2008 17:32

Emeğinize sağlık teşekkürler.
Alacağınız her çıktı, bir ağaç yaprağı...
Hayat 3 ila 4 arasıdır ya 3,5 atarsın yada 4 - 4 lük yaşarsın...
MAJUHOO
Site Dostu
 
Adı Soyadı:KADRİYE OMRAK
Kayıt: 15 Tem 2008 12:40
Yaş: 35
İleti: 502
 
Cinsiyet: Bayan
Bulunduğunuz İl / Semt: istanbul

ComboBox Nedir, Nasıl Kullanılır ?

İleti#11)  Hakan Behcan » 12 Kas 2008 17:38

Sn. fatihy,

Sayfa üzerine koyabileceğiniz iki tür combobox mevcut. Birisi Formlar araç çubuğundaki, diğeri ise Denetim Araç Kutusundaki combobox. Denetim araç kutusundaki combobox u deneyin.
Kullanıcı avatarı
Hakan Behcan
Yönetim Kurulu
 
Adı Soyadı:Hakan BEHCAN
Kayıt: 15 Haz 2008 03:31
Konum: Çerkezköy - Tekirdağ
Meslek: Belli bir meslek yoktur.
Yaş: 48
İleti: 1354
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Çerkezköy

ComboBox Nedir, Nasıl Kullanılır ?

İleti#12)  Tarkan VURAL » 12 Kas 2008 17:43

Evet, eskiden DialogSheets 'ler vardı ve formlar burada da hazırlanabiliyordu. Buna eklenen nesneler de VBA nesneleri gibi değildi. Gerçi halen var ama VBA 'nın gölgesindeki kalmış bir durumda. Hakan beyin bu konuda uyarısına dikkat edin. Kodlarken de Sayfa adınız VBA kısmında Sayfa1 ise ( exceldeki sayfa adlarını değiştirseniz de referans adı değişmez, VBA sayfasından değişir ) Sayfa1.Combobox1 şeklinde denetin.
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

ComboBox Nedir, Nasıl Kullanılır ?

İleti#13)  fatihy » 12 Kas 2008 18:12

Ilginize tesekkür ederim öncelikle.
Hakan Bey'in söyledigi sekilde secmeme ragmen rowsource özelligi görünmüyor.Yani form arac cubugu üzerinden degil de activeX arac cubugu üzerinden secmis olmama ragmen.Ayni sekilde comboboxu secip userform üzerine koydugum taktirde ise rowsource özelligi secilebiliyor. :?:
Peki rowsource özelligini kullanmadan, sayfa üzerindeki belirli bir sütunun icindeki tüm degerleri (toplam deger sayisi degisken) ayni sayfa üzerindeki comboboxa tasiyabilmem söz konusu mudur? Saygilarimla.
Kullanıcı avatarı
fatihy
Yeni Başlamış
 
Adı Soyadı:fatih yilmaz
Kayıt: 30 Ekm 2008 12:20
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: paderborn

ComboBox Nedir, Nasıl Kullanılır ?

İleti#14)  Tarkan VURAL » 12 Kas 2008 18:27

Sayfa üzerindeki ComboBox için ListFillRange özelliğini kullanabilirsiniz.

Kod: Tümünü seç
Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = ""
ComboBox1.ListFillRange = "Sayfa1!a2:a10"
End Sub


Ya da tanımlı dinamik bir hücre alanı ile belirleyebilirsiniz.

Kod: Tümünü seç
Private Sub ComboBox1_DropButtonClick()
ComboBox1.ListFillRange = ""
ComboBox1.ListFillRange = "dinamikalan"
End Sub


Dinamik alan için bknz : viewtopic.php?f=63&t=303&start=0&st=0&sk=t&sd=a
Resim
www.tarkanvural.com.tr

İnnâ lillâhi ve innâ ileyhi raciûn
Şüphesiz ki; biz Allah’a âidiz ve vakti geldiğinde O’na döndürüleceğiz.

HasbunAllâhu ve nimel vekîl
Bize Allah yeter. O ne güzel vekildir.


ExcelVBA.NET' e katkıda bulunmak ister misiniz ? O halde BAĞIŞ butonunu tıklayın...
Kullanıcı avatarı
Tarkan VURAL
Yönetim Kurulu
 
Adı Soyadı:Tarkan VURAL
Kayıt: 14 Haz 2008 20:27
Konum: tarkan@excelvba.net
Meslek: LUU, Yazılım Geliştirme Müdürü
Yaş: 45
İleti: 26822
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: İstanbul - Beylikdüzü

ComboBox Nedir, Nasıl Kullanılır ?

İleti#15)  fatihy » 12 Kas 2008 18:37

Cok tesekkür ederim Tarkan Bey,
vermis oldugunuz örnegi inceledim.Bununla halledebilirim yanilmiyorsam (tabi önce office 2007 de ekle ve ad kismini bulmam gerekiyor :) )
Ne diyebilirim ki.Iyi ki varsiniz --)(
Kullanıcı avatarı
fatihy
Yeni Başlamış
 
Adı Soyadı:fatih yilmaz
Kayıt: 30 Ekm 2008 12:20
İleti: 33
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: paderborn

ComboBox Nedir, Nasıl Kullanılır ?

İleti#16)  drmerim » 30 Kas 2008 21:18

Verdiğiniz bilgiler için teşekkürler...
Benim arzu ettiğim ComboBox ta veri tekrarını engellemek ve boşluk görmemek. Umarım yardımcı olabilirsiniz...
Şimdiden [TESEKKÜR]
Kullanıcı avatarı
drmerim
 
Adı Soyadı:MUSTAFA ERİM
Kayıt: 27 Kas 2008 17:12
İleti: 2
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: BURSA

ComboBox Nedir, Nasıl Kullanılır ?

İleti#17)  Soner ŞENOL » 30 Kas 2008 21:44

[TESEKKÜR]
Kullanıcı avatarı
Soner ŞENOL
Siteye Alışmış
 
Adı Soyadı:soner şenol
Kayıt: 15 Haz 2008 02:18
Meslek: soner.senol@toyotatr.com
İleti: 179
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: sakarya

ComboBox Nedir, Nasıl Kullanılır ?

İleti#18)  taleslab » 08 Arl 2008 00:47

Combobox açıklamaları için teşekkürler. Çok faydalı oluyor.
Kullanıcı avatarı
taleslab
Yeni Başlamış
 
Adı Soyadı:Levent Dalmis
Kayıt: 12 Kas 2008 01:03
Yaş: 39
İleti: 32
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Konya-merkez

Cevap: ComboBox Nedir, Nasıl Kullanılır ?

İleti#19)  serayhefe » 09 Ağu 2009 17:31

Sağolasın emeğine sağlık...
Kullanıcı avatarı
serayhefe
 
Adı Soyadı:Nizamettin Koşar
Kayıt: 07 Arl 2008 22:05
İleti: 1
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: Ankara

Cevap: ComboBox Nedir, Nasıl Kullanılır ?

İleti#20)  ozant » 04 May 2010 21:58

teşekkürler çok güzel açıklamşsınız ancak benim bir sorun var userform'da combo kutucuğuna çift tıklayınca kod yazma bölümünde "Private Sub ComboBox_change()" olarak çıkıyor ve seçenekleri ekleyince çalışmıyor. :S

umarım anlatabildim.
Kullanıcı avatarı
ozant
 
Adı Soyadı:ozan tınkır
Kayıt: 04 May 2010 21:22
İleti: 1
 
Cinsiyet: Bay
Bulunduğunuz İl / Semt: istanbul / kağıthane

Sonraki

Forum ComboBox

Online Kullanıcılar

Bu forumu görüntüleyenler: Kayıtlı kullanıcı yok ve 1 misafir

Bumerang - Yazarkafe