• DİKKAT

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

Soru Makro ile Hücre içeriğini filtrede aratma

Katılım
2 Ekim 2016
Mesajlar
44
Excel Vers. ve Dili
.
Merhaba,

Makro ile Sheet1 A1 hücre içeriğini sheet2 tabloda daki filtrede aratmaya çalışıyorum.

Criteria1 ne yazsam doğru çalışır ya da başka ne yapabilirim ?

Yardımınız için şimdiden teşekkür ederim.
 
Kriter bir den fazla sütunda yer alıyorsa, hangi sütuna göre filtreleme olacak.
 
Sheet1'in kod kısmına ekleyin.
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
if target.Address <> "$A$1" then exit sub
    With Sheets("Sheet2")
           .AutoFilterMode = False
           .[a:c].AutoFilter
           Set a = .[b:b].Find([a1].Text, lookat:=xlWhole)
           If Not a Is Nothing Then
           .[a:c].AutoFilter Field:=2, Criteria1:=[a1].Text
           Else
         
           MsgBox "Sheet2'de B sütununda böyle bir veri yok"
           .AutoFilterMode = False
           .[a:c].AutoFilter
           Exit Sub
           End If
           .Select
    End With

End Sub
 
Hocam başka excel içinde denedim şimdi tarih ya da sayı olduğunda veri bulunamadı diyor.
[a1].Text yerine yapabileceğim bir yöntem var mı?
Bu arada tekrar teşekkür ederim gerçekten çok kısa ve öz yazmışsınız
 
Kodu biraz değiştirdim. Tekrar dener misiniz ?
Kod:
If Target.Address <> "$A$1" Then Exit Sub
    With Sheets("Sheet2")
           .AutoFilterMode = False
           .[a:c].AutoFilter
           Set a = .Range("b2:b" & .[b65536].End(3).Row).Find([a1])
           If Not a Is Nothing Then
           .[a:c].AutoFilter Field:=2, Criteria1:=[a1].Text
           Else
         
           MsgBox "Sheet2'de B sütununda böyle bir veri yok"
           .AutoFilterMode = False
           .[a:c].AutoFilter
           Exit Sub
           End If
           .Select
    End With
    [a1].NumberFormat = "General"
End Sub
 
Son düzenleme:
Hamit hocam
Dün siz yazdıktan sonra denedim tam yazdığımız şekilde çalışıyor fakat makroyu kullanmak istediğim excel e aktardigimda hep bulunamadı diyor bir çok düzeltme denedim ve olmadı
Ama şunu fark ettim benim filtre uyguladığım data formüllü başka excel de ki verileri getiriyor formulsuz bir tane bile aynı datadan varsa filtre doğru çalışıyor.
Eğer kolay bir şey ise desteğinizi tekrar rica ederim.
diğer türlü filtrelenecek data sonuna arayacağım veriyi her arama oncesi ekletip öyle aratacagim.
Desteğiniz için tekrar tekrar teşekkür ederim. İyi ki forumda varsınız
 
Ufak bir değişiklik yaptım, bu şekilde dener misiniz ?
Kod:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$A$1" Then Exit Sub
    With Sheets("Sheet2")
           .AutoFilterMode = False
           .[a:c].AutoFilter
           Set a =.Range("b2:b" & .[b65536].End(3).Row).Find([a1].Value)'Burayı değiştirdim.
           If Not a Is Nothing Then
           .[a:c].AutoFilter Field:=2, Criteria1:=[a1].Text
           Else
          
           MsgBox "Sheet2'de B sütununda böyle bir veri yok"
           .AutoFilterMode = False
           .[a:c].AutoFilter
           Exit Sub
           End If
           .Select
    End With
    [a1].NumberFormat = "General"
End Sub
 
Direk kopyaladım koydum. Zaten yazmışsınız value alanı fakat yine aynı sonuç
Önceki yapmış olduğunuz formüle ek verinin son satırına aradığım değeri yazdiriyorum tam beklediğim şekilde filtreliyor
Destekleriniz için ekrardan çok teşekkür ederim
 
Geri
Üst