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.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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
 
Katılım
9 Haziran 2019
Mesajlar
221
Excel Vers. ve Dili
Office 2016 Eng.
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.

 
Katılım
9 Haziran 2019
Mesajlar
221
Excel Vers. ve Dili
Office 2016 Eng.
Tamda sizin bahsettiğiniz " Sayfanın başka yerinde tıklandığında çalışmasını da engellemek lazım. " yapmasını istiyorum.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
Tablonuzun aralığı neresi?
 
Katılım
9 Haziran 2019
Mesajlar
221
Excel Vers. ve Dili
Office 2016 Eng.
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.
 

Haluk

Özel Üye
Katılım
7 Temmuz 2004
Mesajlar
12,406
Excel Vers. ve Dili
64 Bit 2010 - İngilizce
+
Google Sheets
+
JScript
Altın Üyelik Bitiş Tarihi
Şö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
.
 

ÖmerFaruk

Destek Ekibi
Destek Ekibi
Katılım
22 Ekim 2017
Mesajlar
4,779
Excel Vers. ve Dili
Microsoft 365 Tr-64
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
 
Katılım
9 Haziran 2019
Mesajlar
221
Excel Vers. ve Dili
Office 2016 Eng.
@ÖmerFaruk Bey teşekkür ederim. İlginiz ve vakit ayırdığınız için.
 
Üst