• DİKKAT

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

ListBox'ta filtreleme

Katılım
25 Ağustos 2018
Mesajlar
64
Excel Vers. ve Dili
Excel 2016, Türkçe.
Arkadaşlar merhaba,
ListBox'ta filtreleme ile ilgili internette bir araştırma yaptım ama başarılı olamadım. İnternette bulduğum kodlar genelde aşağıdaki gibi bir sonuç verdi. Mesela 1 sayısını filtreliyoruz diyelim.
1538039485647-png.198587

Halbuki olması gereken aşağıdaki gibiydi.
BAŞLIK1 BAŞLIK2 BAŞLIK3
1 A D

Benim yaptığım filtreleme sadece 1 sayısını veriyor ve başlıkları da göstermiyor. Yardımlarınızı rica ediyorum.
 

Ekli dosyalar

  • 3.xlsm
    3.xlsm
    20.3 KB · Görüntüleme: 25
Merhaba.

TextBox1_Change kodunda yer alan aşağıdaki kırmızı satırın altına mavi olanları ekleyin.
Rich (BB code):
            ListBox1.List(liste, 0) = isim
            ListBox1.List(liste, 1) = isim.Offset(0, 1)
            ListBox1.List(liste, 2) = isim.Offset(0, 2)
 
Teşekkürler Ömer bey, kodunuz çalıştı ancak Textbox'a veri girdiğimde başlıklar siliniyor. Bunu nasıl engelleyebilirim?
 
Add item yönteminde başlık getirilebilir mi bakmak lazım, ben hatırlayamadım.

Benim ListBox kullanırken (genellikle sizinki gibi TextBox ile filtreleme işlemine tabi tutuluyor) tercihim,
TextBox değerine göre sayfayı filtrelemek ve filtre sonucunda kalanları başka bir sayfaya/alana alıp, ListBox'un RowSource özelliği olarak da bu yeni alanı göstermek yönünde. Böylece Addİtem yöntemindeki 10 sütundan fazla veri aktaramama sorunu da kalmamış oluyor.
.
 
Son düzenleme:
Buyurun.:cool:
Dosya ektedir.:cool:

Kod:
Private Sub CommandButton1_Click()
Dim sh As Worksheet, sonsat1 As Long, sonsat2 As Long
Sheets("Sayfa1").Select
Set sh = Sheets("filtre")
ListBox1.RowSource = ""
sh.Range("A1:C" & Rows.Count).Clear
sonsat1 = Cells(Rows.Count, "A").End(xlUp).Row
Range("A1").AutoFilter
Range("A1:C" & sonsat1).AutoFilter field:=1, Criteria1:=CDbl(TextBox1.Value)
Range("A1:C" & sonsat1).CurrentRegion.Copy sh.Range("A1")
Range("A1").AutoFilter
ListBox1.RowSource = "filtre!A2:C" & sh.Cells(Rows.Count, "A").End(xlUp).Row
End Sub

Private Sub UserForm_Initialize()
Sheets("Sayfa1").Select
ListBox1.RowSource = "A2:C" & Cells(Rows.Count, "A").End(xlUp).Row
TextBox1.Value = 1

End Sub
 

Ekli dosyalar

  • 3.rar
    3.rar
    18.5 KB · Görüntüleme: 79
Bunu örnek dosyada uygulayıp gönderebilir misiniz?
 
Sayın Orion1,
Sanırım aynı anda mesaj attık. Kodunuzu deniyorum.
 
Şimdi dosya ekledim tekrar deneyiniz.:cool:
 
Sayın Orion1,
Kodunuzu denedim ancak Listbox'ta bir değişim olmadı. Dosya olarak gönderebilir misiniz?
 
Sayın Orion1,
Tam istediğim gibi oldu. Teşekkürler.
 
Geri
Üst