• DİKKAT

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

Excel'de Tek Tıkla Otomatik Tablo Filtrelemek

Katılım
9 Haziran 2019
Mesajlar
221
Excel Vers. ve Dili
Office 2016 Eng.
Merhaba,

CSS:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

kolon= Target.Column
kriter=Target.Value
ıf Target.Row=1 Then
Else
ActiveSheet.ListObjects("Tablo1").Range.AutoFilter Field:=kolon, Criteria:=kriter, Operator:=XlAnd
End If

End Sub

Makro kaydet ile temin edilen kodlarda bir geliştirme konusunda destek olabilir misiniz. Tablo1 harici sütununa tıkladığımda sürekli hata veriyor. Hata vermemesi için kodda nasıl bir ekleme yapılmalıdır.
 
Aşağıdaki şekilde deneyin.
Tablonun başlık satırına tıklayınca Filtre resetleniyor.
Sayfanın başka yerinde tıklandığında çalışmasını da engellemek lazım.
C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

kolon = Target.Column
kriter = Target.Value
If Target.Row > 1 Then
    Worksheets("Sayfa1").ListObjects("Tablo1").Range.AutoFilter _
    Field:=kolon, Criteria1:="=" & kriter
Else
    If Worksheets("Sayfa1").ListObjects("Tablo1").AutoFilter.FilterMode Then _
    Worksheets("Sayfa1").ListObjects("Tablo1").AutoFilter.ShowAllData
End If
End Sub
 
Aşağıdaki şekilde deneyin.
Tablonun başlık satırına tıklayınca Filtre resetleniyor.
Sayfanın başka yerinde tıklandığında çalışmasını da engellemek lazım.
C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

kolon = Target.Column
kriter = Target.Value
If Target.Row > 1 Then
    Worksheets("Sayfa1").ListObjects("Tablo1").Range.AutoFilter _
    Field:=kolon, Criteria1:="=" & kriter
Else
    If Worksheets("Sayfa1").ListObjects("Tablo1").AutoFilter.FilterMode Then _
    Worksheets("Sayfa1").ListObjects("Tablo1").AutoFilter.ShowAllData
End If
End Sub

Ömer Bey teşekkür ederim.
A ile E sütunun arasında kritere göre filtreleme yapıyorum. Başlığa tıklayınca filtre resetleniyor. Ama F- G gibi herhangi bir sütuna tıklayınca resimdeki hatayı veriyor. Bunu nasıl geçebilirim. tablosuz bir yere başlık harici tıkladığımda bir işlem yapmasın.

tdH56.jpg
 
Tamda sizin bahsettiğiniz " Sayfanın başka yerinde tıklandığında çalışmasını da engellemek lazım. " yapmasını istiyorum.
 
Tablonuzun aralığı neresi?
 
sürekli değişiyor. ben bu makroyu farklı bir çok kitapta kullanacağım. Burda örneğin. A ile D arası siz gösterirseniz ben ona göre diğer dosyalarda uygulama yapabilirim.
 
Şöyle olabilir;

C#:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim myTable As ListObject
    
    Set myTable = Worksheets("Sayfa1").ListObjects("Tablo1")
    kolon = Target.Column
    kriter = Target.Value

    If Not Intersect(Target, myTable.DataBodyRange) Is Nothing Then
        myTable.Range.AutoFilter Field:=kolon, Criteria1:="=" & kriter
    ElseIf Not Intersect(Target, myTable.HeaderRowRange) Is Nothing Then
        If myTable.AutoFilter.FilterMode Then myTable.AutoFilter.ShowAllData
    End If
End Sub

.
 
Haluk bey de cevaplamış. Tablo ortada olursa fark edermi bilmiyorum. Elinizde bulunsuz.
Tablo mesela B4:D10 aralığında ise aşağıdaki kodlar hata vermeyecektir.

C++:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Worksheets("Sayfa1").ListObjects("Tablo1").DataBodyRange) Is Nothing Then
kolon = Target.Column - Worksheets("Sayfa1").ListObjects("Tablo1").DataBodyRange.Cells(1, 1).Column + 1
kriter = Target.Value
Worksheets("Sayfa1").ListObjects("Tablo1").Range.AutoFilter Field:=kolon, Criteria1:="=" & kriter
Else
    If Worksheets("Sayfa1").ListObjects("Tablo1").AutoFilter.FilterMode Then _
    Worksheets("Sayfa1").ListObjects("Tablo1").AutoFilter.ShowAllData
End If
End Sub
 
@ÖmerFaruk Bey teşekkür ederim. İlginiz ve vakit ayırdığınız için.
 
Geri
Üst