• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Combobox'a Çoklu Veri Çekme

Katılım
3 Aralık 2014
Mesajlar
212
Excel Vers. ve Dili
Microsoft Excel 2007
Selamlar. Uzun süre araştırdım ama sorunuma çözüm bulamadım. Elimde 42 adet combobox var. ve hepsine de Veritabanı sayfamdan A2:H65536 arasını boş hücreler olmadan çekmek istiyorum. Bunu nasıl yapabilirim.

Elimdeki mevcut kod ile tek bir sütundan örneğin J'den boşluklar olmadan verileri combobox a çekebiliyorum.
Kod:
ComboBox1.RowSource = "Veritabanı!J2:J" & Sheets("Veritabanı").Cells(65536, "J").End(xlUp).Row

Benim bunu A:H arasını komple yapmam gerekiyor. Yardımlarınızı bekliyorum. Teşekkürler şimdiden.
 
Kod:
ComboBox1.ColumnCount = 8
ComboBox1.RowSource = "Veritabanı!A2:H" & Sheets("Veritabanı").Cells(65536, "H").End(xlUp).Row
 
Sayın @dalgalikur ; ilginiz için teşekkürler. Fakat bu kod Combobox'a dediğimiz aralığı alıyor ama tablo gibi alıyor. tıkladığımızda da A sütunundaki veriyi veriyor bana.
 
Birinci kolondakini öğrenmek için
Kod:
MsgBox ComboBox1.List(ComboBox1.ListIndex, 0)

Üçüncü kolondakini öğrenmek için
Kod:
MsgBox ComboBox1.List(ComboBox1.ListIndex, 2)
 
Buyurun.:cool:
Kod:
Dim i As Long, sonsat As Long
sonsat = Sheets("Veritabanı").Cells(65536, "J").End(xlUp).Row
For i = 1 To sonsat
    If Sheets("Veritabanı").Cells(i, "J").Value <> "" Then _
            ComboBox1.AddItem Sheets("Veritabanı").Cells(i, "J").Value
Next i
 
Sayın @Orion1 ilginize teşekkürler. Fakat verdiğiniz kod ile benim elimdeki kod birbiriyle aynı işlevi görüyor gibi..
Ben sanırım tam anlatamadım istediğimi.. Şöyle ki
A sütunundan H sütunu da dahil verilerim var.
Bende bunların hepsini combobox'a çekmek istiyorum.
Elimde de 42 adet combobox var hepside aynı verileri çekecek.
Sayın @dalgalikur'un verdiği kodla combobox üzerinde istediğim verileri görüyorum fakat tablo şeklinde ve seçim yapmak istediğimde A sütunundaki bilgi geliyor combobox'a.
Kod:
ComboBox1.ColumnCount = 8
ComboBox1.RowSource = "Veritabanı!A2:H" & Sheets("Veritabanı").Cells(65536, "H").End(xlUp).Row
Verilerin tablo değil sanki 1 sütunda hepsi yazılıymışcasına combobox a çekilmesi gerekiyor. Teşekkür ediyorum şimdiden yardımlarınız için
 
örnek dosyanızı ekleyebilir misiniz?
 
Sayın @kuvari ; ilginize teşekkürler. Attechments olarak ekleyemiyorum altın üye olmadığımdan dolayı. Linklemek istemedim programı. Az önce de çözdüm kendim problemi farklı bir şekilde. Bunu da yapamayan arkadaşlar varsa onlara da örnek olabilir belki en azından fikir.. A ile H dahil sütunlarındaki bilgileri alt alta bir combobox a çektirmek istiyordum. Bunu da J sütununa A yı kopyala J ye yapıştır B yi kopyala son dolu hücreyi bul yapıştır diyerek hepsini yaptım ve combobox lara da J yi çektirdim. Problemim bu şekilde şimdilik çözüldü. Tabii direk yapabilseydim daha iyiydi.
 
Sayın @kuvari ; ilginize teşekkürler. Attechments olarak ekleyemiyorum altın üye olmadığımdan dolayı. Linklemek istemedim programı. Az önce de çözdüm kendim problemi farklı bir şekilde. Bunu da yapamayan arkadaşlar varsa onlara da örnek olabilir belki en azından fikir.. A ile H dahil sütunlarındaki bilgileri alt alta bir combobox a çektirmek istiyordum. Bunu da J sütununa A yı kopyala J ye yapıştır B yi kopyala son dolu hücreyi bul yapıştır diyerek hepsini yaptım ve combobox lara da J yi çektirdim. Problemim bu şekilde şimdilik çözüldü. Tabii direk yapabilseydim daha iyiydi.

Merhaba,

Programı eklemenize gerek yok, örnek olacak değerlerini sizin uydurduğunuz bir excel ekleyebilirsiniz.
 
Aşağıdaki kodu denermisiniz.
Kod:
Private Sub UserForm_Initialize()
ComboBox1.Clear
satır = 1
kolon = Cells(satır, 1).End(xlToRight).Column
Dim sonsat As Long
sonsat = Sheets(ActiveSheet.Name).Cells(65536, "A").End(xlUp).Row
For k = 2 To Sheets(ActiveSheet.Name).Cells(65536, "A").End(xlUp).Row
For i = 1 To kolon
If Sheets(ActiveSheet.Name).Cells(k, i).Value <> "" Then _
            ComboBox1.AddItem Sheets(ActiveSheet.Name).Cells(k, i).Value
Next
Next
ComboBox1.ListIndex = 0
End Sub
 
Sayın @vardar07 ; ilginize teşekkürler. Verdiğiniz kod çalışıyor fakat bu seferde şöyle bir sıkıntı var. Verileri yatay alıyor. Yani Combobox'a veri A1 B1 C1 A2 B2 C2 bu şekilde geliyor. Yani ilk başta A sütunu sonra B sütunu şeklinde gelecek veri. Bunu bu hale nasıl getirebiliriz ?
 
Buyurun.:cool:
Kod:
Private Sub UserForm_Initialize()
ComboBox1.ColumnCount = 8
ComboBox1.RowSource = "Sayfa1!A1:H" & Sheets("Sayfa1").Cells(Rows.Count, "A").End(xlUp).Row
End Sub
 
Aşağıdaki satırların yerlerini değiştirip denermisiniz.
Kod:
For k = 2 To Sheets(ActiveSheet.Name).Cells(65536, "A").End(xlUp).Row
For i = 1 To kolon
 
İşte bu ! Sayın @vardar07 beni bir haftadır çektiğim işkenceden kurtardınız. Teşekkür ederim. Peki elimde 42 tane combobox var. Hepsine de aynı bu kod ile veriyi çektireceğim.Ayrı ayrı hepsine yazmak yerine tek bir kodla Bunu nasıl yaparız.
 
Aşağıdaki şekilde denermisiniz.
Not:Kırmızılı yerdekinden eksik combobox olursa hata verir.
Kod:
Private Sub UserForm_Initialize()
ComboBox1.Clear
ComboBox1.ColumnCount = 8
satır = 1
kolon = Cells(satır, 1).End(xlToRight).Column
Dim sonsat As Long, i, m, k
sonsat = Sheets(ActiveSheet.Name).Cells(65536, "a").End(xlUp).Row
For i = 1 To kolon 'Dolu kolon sayısı
For k = 1 To Sheets(ActiveSheet.Name).Cells(65536, "A").End(xlUp).Row 'Dolu satır sayısı
For m = 1 To [COLOR="Red"][B]42[/B][/COLOR] 'combobox adeti
If Sheets(ActiveSheet.Name).Cells(k, i).Value <> "" Then _
Controls("ComboBox" & m).AddItem Sheets(ActiveSheet.Name).Cells(k, i).Value
Next
Next
Next
ComboBox1.ListIndex = 0
End Sub
 
Geri
Üst