• DİKKAT

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

Çözüldü listbox.row source 23 sütunlu listbox ve combobox süzme

zulfuernek

Altın Üye
Katılım
24 Haziran 2017
Mesajlar
761
Excel Vers. ve Dili
türkçe
userformda listbox 23 sütun olacağı için rowsource kodalayamadım. ayrıca listbox properties te de yazmama rağmen bir türlü beceremedim.

lütfen yardım sayın hocalarım
 

Ekli dosyalar

Combobox6 için yaptım.
Dosyanız ektedir.:cool:
 

Ekli dosyalar

@Orion1 hocam emeğine sağlık. ufak bir sorum olucak. combobox 7 için uyarladığımda c sütunundan uyarladığı için -1 yai b sütunundaki bilgiyi almıyor. yan önceki sütunlardan veri nasıl çekebilirim burda
 
bayağı karışık bir kodlama. özür dileyerek soruyorum hocam ben sizin kadar usta biri değilim. farkındasınız. yani benim kodlamam daha uzun farkındasınız tabi. ancak öyle bişeyler anlıyorum bakınca. benim kodlamam üzerinde yapabilirmiyiz row source olayında.


yani bu kodlamaya row source ekleye bilirmiyiz.

ListBox2.ColumnCount = 6
ListBox2.ColumnWidths = "60;55;65;80;46;120"
'ListBox2.ColumnHeads = True
ListBox2.Clear
For Each isim In Sheets("KAYIT").Range("B2:B" & Sheets("KAYIT").Range("B65536").End(xlUp).Row)
If UCase(LCase(isim)) Like UCase(LCase(ComboBox6)) & "*" Then
'liste = ListBox1.ListCount
ListBox2.AddItem
ListBox2.List(x, 0) = isim.Offset(0, 0)
ListBox2.List(x, 1) = isim.Offset(0, 1)
ListBox2.List(x, 2) = isim.Offset(0, 2)
ListBox2.List(x, 3) = isim.Offset(0, 3)
ListBox2.List(x, 4) = isim.Offset(0, 4)
ListBox2.List(x, 5) = isim.Offset(0, 5)
ListBox2.List(x, 6) = isim.Offset(0, 6)
ListBox2.List(x, 7) = isim.Offset(0, 7)
ListBox2.List(x, 8) = isim.Offset(0, 8)
ListBox2.List(x, 9) = isim.Offset(0, 9)
ListBox2.List(x, 10) = isim.Offset(0, 10)
ListBox2.List(x, 11) = isim.Offset(0, 11)
ListBox2.List(x, 12) = isim.Offset(0, 12)
ListBox2.List(x, 13) = isim.Offset(0, 13)
ListBox2.List(x, 14) = isim.Offset(0, 14)
ListBox2.List(x, 15) = isim.Offset(0, 15)
ListBox2.List(x, 16) = isim.Offset(0, 16)
ListBox2.List(x, 17) = isim.Offset(0, 17)
ListBox2.List(x, 18) = isim.Offset(0, 18)
ListBox2.List(x, 19) = isim.Offset(0, 19)
ListBox2.List(x, 20) = isim.Offset(0, 20)
ListBox2.List(x, 21) = isim.Offset(0, 21)
ListBox2.List(x, 22) = isim.Offset(0, 22)

x = x + 1
End If
Next


en azından bende ezbercilik yerine uzunda olsa kodlamayı çözmüş olurum ve üzerinde istediğim değişikliği yapabilirim.
 
Verdiğiniz bu örnek le rowsource ile verileri alaamzsınız.Ben size en hızlı çalışan kodları yaptım.
Dizi formülü ilede yapabilirsiniz ama orada sayı ve tarih değerlerini alırken formatlamanız lazım.
Bu seferde sayfaya ,listboxta biçimlendirme yaptığınız için bir kerede alamazsınız.Alsanızda sonra tekrar düzenleme yapmanız lazım,yada tekrar listboxta döngüye girerek text olan sayıları sayıya çevirmeniz lazım.Ben size en iyi kodu yazdım.:cool:
 
@Orion1 hocam gerçekten mükemmelini yapmışsınız ellerine ve emeklerinize sağlık. hakkınızı inkar edemem. lütfen beni yanlış anlamayın ben sizin kodlarınızı beğenmedim veya istemiyorum diye demiyorum. gerçekten acemi olduğum için kodları çözmekte zorlandım. yavaş yavaş öğrenmek istedim :))

peki hocam sizin verdiğiniz kodda eksi sütundaki veriyi nasıl uyarlarım. yani combobox D sütunundan süzme işlemi yaparken b sütunundan başlayarak nasıl bir değişim yapabilirim ? yani D sütunundan süzecek ama B sütunundan itibaren verileri alacak
 
Combobox7 için kodları yazdım.
Kırmızı yerleri tekrar düzenledim.Comboboxta önce yazdığınız kodları silin.:cool:

Rich (BB code):
Private Sub ComboBox7_Change()

Dim sonsat As Long, s1 As Worksheet, s2 As Worksheet

ListBox2.RowSource = ""

Set s1 = Sheets("KAYIT")

Set s2 = Sheets("liste")

s2.Range("B:X").Clear

s1.Range("B1").AutoFilter

s1.Range("B1").AutoFilter field:=4, Criteria1:=ComboBox7.Value & "*"

s1.Range("B1").CurrentRegion.Copy s2.Range("A1")

sonsat = s2.Cells(Rows.Count, "B").End(xlUp).Row

ListBox2.RowSource = s2.Name & "!B2:X" & sonsat

s1.Range("B1").AutoFilter

End Sub[
 
emeğinize sağlık hocam mesajı şimdi gördüm. hemen uyarlıyorum.
 
@Orion1 hocam kırmızı alanda hata veriyor

Dim sonsat As Long, s1 As Worksheet, s2 As Worksheet

ListBox2.RowSource = ""

Set s1 = Sheets("KAYIT")

Set s2 = Sheets("liste")

s2.Range("B:X").Clear

s1.Range("B1").AutoFilter

s1.Range("B1").AutoFilter field:=4, Criteria1:=ComboBox7.Value & "*"

s1.Range("B1").CurrentRegion.Copy s2.Range("A1")

sonsat = s2.Cells(Rows.Count, "B").End(xlUp).Row

ListBox2.RowSource = s2.Name & "!B2:X" & sonsat

s1.Range("B1").AutoFilter

End Sub
 
liste diye bir sayfanız yok.Bir sayfa oluşturunuz ve adını liste yapınız.:cool:
 
sorunu gğncel tutmak için tekrar yazıyorum. combobox 6 için rowsource işlem yapıyor ancak diğer comboboxlar için row source uygulayamıyorum. diğer comboboxlar süzme işlemi yaparken veriyi eksi(-) sütunlardan alması gerekiyor. comboboxlar üzerinde arama kreiteleri yazıyor. listboxta aranan veri a sütunundan itibaren gösterilmesi gerekli
 
Buyurun.
Combobox7 de çalışıyor.:cool:
Dosya ektedir.:cool:
 

Ekli dosyalar

@Orion1 hocam işlev görüyor evet fakat doğru süzme işlemi yapmıyor. yani sizin dediğiniz gibi 4 rakamını yazdığımda e sütununa göre süzüyor oysaki birim sütununa yani D sütununa göre süzme yapıb b sünuyla x sütunu arasındaki verileri listboxa atması gerekli.

hocam çok oldum değil mi :(( affınıza sığınıyorum inanın
 
Ama sizin combobox7 de E sütununda veriler var.
Dolayısıyla E sütununa göre süzme yapıyor.:cool:
 
burdai değeri 3 bile yapsam genede e sütununa göre süzme yapıyor
 
field i 3 yaparsanız comboboxa 5 yazın bakın nasıl çözüyor.Ben denedim çalışıyor.:cool:
 
allah allah bende neden olmuyor ya vallaha deliricem hocam :) farklı bir comboboxta da denedim olmuyor. combobox 7
 
Bakın resme.

Adsız.jpg
 
hocam estafurlah size güvenim ve inancım sonsuzdur. da bendeki resme :(

1552212212384.png
 
Geri
Üst