• DİKKAT

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

listbox a veri çekmek

Katılım
1 Eylül 2008
Mesajlar
219
Excel Vers. ve Dili
ofis 2010
mrb lar

yapmaya çalıştığım şey
ekteki çalışmamda 1 adet combo 1 adette listbox var(tek kolonlu)
listbox bütün verilerini sayfa 1 den alıyor
comboboxta ki veri change olayıyla değiştikçe
listboxunda veri çektiği sütun combobox un listindex ine göre değişecek.
yani combonun listindexi sayfadaki colonunda numarasını belirliyor.
böylece listindex değiştikçe listboxun veri aldığı kolonda değişecek
bu şekilde listbox a veri çekmeyi başaramadım

bu konuda yardımlarınızı bekliyorum.
 

Ekli dosyalar

Şu şekilde dener misiniz istediğinize yaklaşıyor sanırım..

Option Explicit


Private Sub ComboBox1_Change()
Dim a As Integer
ListBox1.Clear
a = ComboBox1.ListIndex + 1
ListBox1.AddItem Sheets("Sayfa1").Cells(2, a)
End Sub

Private Sub UserForm_Initialize()
Me.ComboBox1.RowSource = "Sayfa2!a1:a10"
End Sub
 
sayın peleryn ilginiz için teşekkürler.verdiğiniz kod işlem yapıyor.
kendim de şu şekilde bir çözüm ürettim

Private Sub ComboBox1_Change()
i = Me.ComboBox1.ListIndex + 1
adr = Range(Cells(1, i), Cells(20, i)).Address
Me.ListBox1.RowSource = adr

End Sub

fakat dikkat edilirse hem sizin çözümde hem benim çözümde satır konusunda sınırlılık var.sizin çözüm tek bir satırdaki veriyi gösterirken benim çözümde de 20 satırlık bir çözüm söz konusu.yapmaya çalıştığım en son dolu satıra kadar bütün verileri çekebilmek.

arkadaşlar çözüm önerilerinizi bekliyorum.
konuyla ilgili son geldiğim çalışmam ektedir
 

Ekli dosyalar

bu kod işinizi görürmü

Private Sub ComboBox1_Change()
i = Me.ComboBox1.ListIndex + 1
sonsatır = Worksheets(ActiveSheet.Name).Cells(65536, i).End(xlUp).Row
adr = Range(Cells(1, i), Cells(sonsatır, i)).Address
Me.ListBox1.RowSource = adr
End Sub
 
Sn.öğrtm;

Acaba bu işlemi kaç sütunda yapacağınız belli mi?Örnekteki gibi K sütununa kadar mı yapılacak?
Bahsettiğiniz satır sorununu çözüyorum ama sütun arttıkça kod da artacak şekilde..
 
Halit hocam;
sonsatır = Worksheets(ActiveSheet.Name).Cells(65536, i).End(xlUp).Row
RowSource için genel kullanılan Range'li kalıbı bir türlü şu hale getiremediğim için işin içinden çıkamadım.En son artık her listindex değeri için If le bir rowsource atayacaktım o yüzden arkadaşa sütun sayısını sordum.
Benim uğraştığım sorun kodlarınızla çözülüyor Sn Öğrtm'nin sorusuydu ama beni de kurtardınız bu illetten ellerinize sağlık:)
 
arkadaşlar halit bey cevabı işlemi tamamlıyor.
sayın peleryn satır da sütunda sabit değil.amacım listboxun veri kaynaklarını esnek olarak belirlemek

herhese ilgilerinden dolayı çok teşekkür ederim
 
birde bu kodu deneyiniz.

Private Sub ComboBox1_Change()
i = Me.ComboBox1.ListIndex + 1
Me.ListBox1.ColumnCount = i
sonsatır = Worksheets(ActiveSheet.Name).Cells(65536, i).End(xlUp).Row
adr = Range(Cells(1, 1), Cells(sonsatır, i)).Address
Me.ListBox1.RowSource = adr
End Sub
 
Bu arada Sn Öğrtm ;

UserForm Initialize kısmını şu şekilde değiştirin de bu kadar uğraştım bir katkım olmuş olsun:)

Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sayfa2!a1:a" & [Sayfa2!a65536].End(3).Row
End Sub
 
iyi akşamlar kolay gelsin
 
sayın peleryn şu anda yapmayı düşündüğüm çalışmanın temellerini oluşturmaya çalışıyorum.son halini verirken mutlaka tavsiyelerinize uyacağım
ilginizden dolayı teşekkür ederim.
 
Sn öğrtm;

Tavsiye ne haddime..Forumlardan,hocalarımızdan öğrendiğim,dosyanızda gözüme çarpan ufak birşey..

Çalışmanızda umduğunuz sonucu elde etmeniz dileğiyle..İyi çalışmalar dilerim..
 
Geri
Üst