• DİKKAT

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

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
 
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
 
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.
 
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
 
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
 
Geri
Üst