Textbox ile süzülen veriyi listbox da güncelleme

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Arkadaşlar Userform da hazırlanan textbox ile excel sayfasındaki ilgili sütunda "veri süz" yapıyorum. Süzülen veriler anında (Userform'u kapatıp açmadan) birbiri ile alakalı iki listbox kutularında nasıl listelettirebilirim.
Aşağıdaki kodda bir eksiklik var sanırım. Textbox'a yazdığım kelimeye göre excel sayfasındaki satırları süzerek yazdığım kelimelerin olduğu satırla süzülüyor. Ama listbox'da listelenmiyor. Yardımcı olursanız sevinirim.

Textbox5: Aramak için kelime yazılan metin kutusu
Excel sayfasındaki 24. sütunda arama yapıyor
Listbox ise "B" sütunundaki süzülen satırlardaki B9 hücresinden itibaren hücreleri listeleyecek

Kod:


Private Sub TextBox5_Change()
On Error Resume Next
METİN1 = TextBox5.Value
Set FC2 = Range("x9:z65000").Find(What:=METİN1)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
Selection.AutoFilter Field:=24, Criteria1:="*" & TextBox5.Value & "*"
If METİN1 = "" Then
Selection.AutoFilter Field:=24

Dim rng As Range, rngCell As Range

f = WorksheetFunction.CountA(Sheets("ksitte").Range("B9:B15000"))

Set rng = Sheets("ksitte").Range("B9:B" & f + 8).SpecialCells(xlCellTypeVisible)

With ListBox1
.Clear
.RowSource = ""
End With

With ListBox4
.Clear
.RowSource = ""
End With
For Each rngCell In rng
ListBox1.AddItem rngCell.Value
ListBox4.AddItem rngCell.Value
Next rngCell

End If
End Sub
 

asdsxx

Altın Üye
Katılım
22 Mayıs 2012
Mesajlar
491
Excel Vers. ve Dili
Excel 2016 Türkçe
Altın Üyelik Bitiş Tarihi
20-02-2025
Arkadaşlar kodda yazarken küçük bir hata yapmışım aşağıdaki gibi olacak ilk durumda "A9:aa65000" aralığında 24. (X) sütunu süzülecek ve süzme yapıldıktan sonra kalan "B" sütunundaki değerler listbox da listelenecek.

Kod:


Private Sub TextBox5_Change()
On Error Resume Next
METİN1 = TextBox5.Value
Set FC2 = Range("a9:aa65000").Find(What:=METİN1)
Application.Goto Reference:=Range(FC2.Address), _
Scroll:=False
Selection.AutoFilter Field:=24, Criteria1:="*" & TextBox5.Value & "*"
If METİN1 = "" Then
Selection.AutoFilter Field:=24

Dim rng As Range, rngCell As Range

f = WorksheetFunction.CountA(Sheets("ksitte").Range("B9:B15000"))

Set rng = Sheets("ksitte").Range("B9:B" & f + 8).SpecialCells(xlCellTypeVisible)

With ListBox1
.Clear
.RowSource = ""
End With

With ListBox4
.Clear
.RowSource = ""
End With
For Each rngCell In rng
ListBox1.AddItem rngCell.Value
ListBox4.AddItem rngCell.Value
Next rngCell

End If
End Sub
 
Üst