Textbox yazarken filtreleme

Katılım
8 Temmuz 2010
Mesajlar
12
Excel Vers. ve Dili
excell 2003 türkçe
Bir fiyat listesinde arama yapıyoruz.
Bu kod listedeki ürünlerin ilk harfinden referans alarak arama yapıyor. Benim istediğim ise aradığımız kelime ile başlayan yada içinde o kelime geçen cümleleri filtrelemesi.

Yardımcı olursanız çok memnun olurum.


Private Sub TextBox1_Change()

Dim MyRange As Range
Dim noA As Integer
ListBox1.Clear
noA = WorksheetFunction.CountA(Sheets("Data").Range("G:G "))
For Each MyRange In Sheets("Data").Range("G1:G" & noA)
If Left(LCase(MyRange), Len(TextBox1)) = LCase(TextBox1) Then ListBox1.AddItem (MyRange)
Next

End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Bunu bir deneyin ...

Kod:
Private Sub TextBox1_Change()
    Dim MyRange As Range
    Dim noA As Integer
    
    ListBox1.Clear
    
    noA = WorksheetFunction.CountA(Sheets("Data").Range("G:G "))
    For Each MyRange In Sheets("Data").Range("G1:G" & noA)
        If MyRange Like "*" & TextBox1 & "*" Then ListBox1.AddItem MyRange
    Next
End Sub
 
Katılım
8 Temmuz 2010
Mesajlar
12
Excel Vers. ve Dili
excell 2003 türkçe
Haluk Hocam teşekkür ederim,
Yazmış olduğunuz kod çalışıyor fakat küçük harf büyük harf duyarlılığını nasıl çözeriz yardımcı olursan çok memnun olurum.

Örneğin; listede "Kalem" yazıyor. "KALEM" yada "kalem" olarak arattığımızda bulamıyor.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
43,520
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Deneyiniz.

Kod:
Private Sub TextBox1_Change()
    Dim Hucre As Range, Son As Integer, Veri As String, Aranan As String
    
    ListBox1.Clear
    
    Son = Cells(Rows.Count, "G").End(3).Row
    
    For Each Hucre In Sheets("Data").Range("G1:G" & Son)
        Veri = UCase(Replace(Replace(Hucre, "ı", "I"), "i", "İ"))
        Aranan = UCase(Replace(Replace(TextBox1, "ı", "I"), "i", "İ"))
        If Veri Like "*" & Aranan & "*" Then ListBox1.AddItem Hucre
    Next
End Sub
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,398
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Alternatif:

Kod:
Private Sub TextBox1_Change()
    Dim MyRange As Range
    Dim noA As Integer
    
    ListBox1.Clear
    [AA1] = TextBox1.Text
    noA = WorksheetFunction.CountA(Sheets("Data").Range("G:G "))
    For Each MyRange In Sheets("Data").Range("G1:G" & noA)
        If Evaluate("=lower(" & MyRange.Address & ")") Like "*" & Evaluate("=lower(AA1)") & "*" Then ListBox1.AddItem MyRange
    Next
End Sub
 
Üst