Excel Makro (VBA) Dersleri - 5: Arama Konsolu Yapımı

kusha · 01 Ağustos 2026 · 5 dk okuma

Bu derste, bir kutuya yazdığınız anda tabloyu otomatik filtreleyen bir arama konsolunu VBA ile yapacağız — Excel'in yerleşik FİLTRE formülünün olmadığı eski sürümlerde bile çalışan bir yöntem.

Worksheet_Change: Bir Hücre Değiştiğinde Otomatik Çalışan Kod

Normal makrolardan farklı olarak, bu kod bir düğmeye değil, bir hücrenin değişmesine bağlı çalışır. VBA editöründe ilgili sayfaya çift tıklayıp üstteki açılır listeden Worksheet, yandan Change seçtiğinizde otomatik bir şablon oluşur:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim arama As String
    arama = Worksheets("Sayfa1").Range("C4").Value

    ActiveSheet.Range("A1:C15").AutoFilter Field:=1, _
        Criteria1:="*" & arama & "*"
End Sub
  • Target As Range: hangi hücrenin değiştiğini temsil eder.
  • "*" & arama & "*": yıldız (*) joker karakterleriyle, arama kutusundaki metnin herhangi bir yerde geçmesi yeterli olacak şekilde filtre kurar.

Arama Kutusu Boşaltıldığında Tüm Veriyi Göstermek

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim arama As String
    arama = Worksheets("Sayfa1").Range("C4").Value

    If arama = "" Then
        ActiveSheet.ShowAllData
    Else
        ActiveSheet.Range("A1:C15").AutoFilter Field:=1, _
            Criteria1:="*" & arama & "*"
    End If
End Sub

Bu If kontrolü olmadan, arama kutusunu boşalttığınızda hiçbir sonuç gelmemesi riski vardır — If ile boş kutu özel olarak ele alınıp tüm veri geri gösterilir.

Dosyayı Kaydetmeyi Unutmayın

Bu kod bir olaya bağlı çalıştığı için, dosyayı Makro İçerebilen Excel Çalışma Kitabı (.xlsm) olarak kaydetmeniz gerekir — aksi halde kod kaybolur.

Sırada Ne Var?

Sırada, seçtiğiniz hücrenin bulunduğu satır ve sütunu otomatik vurgulayan bir görsel geliştirme var.