Hücredeki Değere Göre Otomatik Filtre Uygulama isimli içerikte, ilgili işlemin VBA kodları ile nasıl yapacağınızı öğreten bir Hazır Makro Kodu yer almaktadır.
Kodlara dair detayların adımları şu şekildedir:
Faydalanılması temennisiyle
Hazır Kod
VBA:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim KeyCell As Range
Set KeyCell = Range("E1")
If Not Application.Intersect(KeyCell, Range(Target.Address)) Is Nothing Then
Range("A1:B37").AutoFilter Field:=1, Criteria1:=Range("E1").Value
End If
End Sub
Açıklama
Kodlara dair detayların adımları şu şekildedir:
- Private Sub Worksheet_Change(ByVal Target As Range): Bu satır, bir VBA prosedürünü başlatır. Worksheet_Change olayı, çalışma sayfasındaki herhangi bir hücre değiştiğinde tetiklenir. Target parametresi, değişikliğin yapıldığı hücre veya hücrelerin aralığını temsil eder.
- Dim KeyCell As Range: Burada KeyCell adında bir Range (hücre aralığı) nesnesi tanımlanıyor. Bu, izlemek istediğimiz ana hücreyi belirleyeceğimiz değişkendir.
- Set KeyCell = Range("E1"): KeyCell değişkenini E1 hücresine ayarlıyoruz. Bu, izlemek istediğimiz hücredir.
- If Not Application.Intersect(KeyCell, Range(Target.Address)) Is Nothing Then: Bu satır, değişikliğin KeyCell ile çakışıp çakışmadığını kontrol eder. Yani, eğer E1 hücresinde bir değişiklik yapılırsa, bu ifade doğru (True) olur ve ifadenin içindeki kodlar çalıştırılır.
- Range("A1:B37").AutoFilter Field:=1, Criteria1:=Range("E1").Value: E1 hücresinde bir değişiklik olduğunda, bu satır çalışır. A1:B37 aralığında otomatik filtreleme yapar. Field:=1 ile A sütununu (ilk sütun) temsil eder ve Criteria1:=Range("E1").Value ile E1 hücresindeki değere göre filtreleme yapar.
- End If: If bloğunun sonunu belirtir.
Faydalanılması temennisiyle