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.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,729
Excel Vers. ve Dili
Excel 2019 Türkçe
Kriter bir den fazla sütunda yer alıyorsa, hangi sütuna göre filtreleme olacak.
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,729
Excel Vers. ve Dili
Excel 2019 Türkçe
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
 
Katılım
2 Ekim 2016
Mesajlar
44
Excel Vers. ve Dili
.
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
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,729
Excel Vers. ve Dili
Excel 2019 Türkçe
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:
Katılım
2 Ekim 2016
Mesajlar
44
Excel Vers. ve Dili
.
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
 

hamitcan

Uzman
Uzman
Katılım
1 Temmuz 2004
Mesajlar
7,729
Excel Vers. ve Dili
Excel 2019 Türkçe
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
 
Katılım
2 Ekim 2016
Mesajlar
44
Excel Vers. ve Dili
.
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
 
Üst