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
Uygulama Adımları
- Microsoft Visual Basic for Applications penceresini (Alt + F11) açın.
- Project - VBAProject alanının, ekranın sol tarafında görüldüğünden emin olun. Görünmüyorsa, Ctrl + R kısayolu ile hızlıca açın.
- Microsoft Excel Objects yazısının solundaki + simgesini tıklayın ve hangi sayfada deneme yapacaksanız, o sayfanın adının üstüne çift tıklayın.
- Alttaki kodu yapıştırın.
Hazır Kod
VBA:
Görüntülemek için giriş yapmanız gerekmektedir.
(8 satır)
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