Vba’da Filtre (Autofilter) Kodları


Excelde sık kullandığımız filtre komutunu Visual Basic Kodu olarak nasıl yazacağımıza bakalım. Elimizde ay bazında bisiklet satış adetleri mevcut.

vba_filter1.Ocak ayı satışlarını filtreleyelim.

Sub filtre()

Range("A1").Select

Selection.AutoFilter Field:=2, Criteria1:="ocak"

End Sub

vba_filter
Range(“A1”).Select : Burada bir hücre seçmemin sebebi vba nın hangi tabloya filtre koyacağını bilmesini sağlamak aynı kodu yukarıdaki tablo içerisinde herhangi bir hücre seçerek de yapabilir. Önemli olan seçilen hücrenin tablo içerisinde ya da tablo dışındaki tabloya bitişik ilk hücre olması.

AutoFilter : Filtrele komutu

Field:=2 : Bu hangi sütuna göre filtreleme yapacağımızı belirtiyoruz. 2 yani 2. sütundaki aylara göre filtreleme yapacağız.

Criteria1:=”ocak”  : 2. sütunda hangi kriteri filtreleyeceğim? Burada “ocak” ayını yazdık.

2.Birden fazla filtreleme yapmak istersek:


Sub filtre()

Range("A1").Select

Selection.AutoFilter Field:=2, Criteria1:="ocak", Operator:=xlOr, Criteria2:="şubat"

End Sub

Operator: =xlOr burada Ocak ve ya şubat aylarının ikisini birden aramak için veya operatörü koyduk.

vba_filter

 

3.Mevcut filtreyi kaldıralım:


Sub unfilter()

ActiveSheet.AutoFilterMode = False

End Sub

4.Kodun kullanımının basit olduğunu gördük şimdi bu kodu daha kısa şekilde yazmaya çalışalım:


Sub filtre()

Range("A1").AutoFilter 2, "ocak", xlOr, "Şubat"

End Sub

Not: Sıralamayı unutsak bile Autofilter komutu sonrası verileri hangi sırayla girmemiz gerektiğini vba bize söylüyor.

Capture

5.Xl operatörü ile birden fazla kriter girebileceğimiz belirtik peki kriterler farklı sütunlarda yer alıyorsa:

Yani Vintage bisiklet, Ocak ayı satış adetlerini filtrelemek istersek:


Sub filtre()

Range("A1").AutoFilter 1, "Vintage bisiklet"

Range("A1").AutoFilter 2, "ocak"

End Sub

vba_filter

Reklamlar

Vba’da Filtre (Autofilter) Kodları” üzerine 14 yorum

  1. merhabalar.. benimde elimde bir tablo var.. surekli yeni veri girisi yaptigim.. ama yeni veri girislerinde urun kodu stununa gore surekli filitre yapip ayni urun kodundaki daha onceki islemleri gormem gerekiyor bu da cok vakit kaybetmemi sagliyor..
    ornek diyelim a sutununa surekli urune ait kodlari giriyorum.. a sutunun x satirina.. bir deger girdigimde a sutununda x e girdigim koda gore filitreleme yapabilir mi.. daha sonra x+1 satirina baska bir deger girdigimde o degere gore filtrelemesi gerekiyor..
    kisacasi.. surekli bir sutunun en son degerine gore filitreleme yapmasi gerekiyor..
    yardimlariniz icin simdiden tesekkur ederim

  2. Hocam bir sutun altındaki tum satırlarda örneğin a,e,c harflerinin kesinlikle uçünun bir arada olmamasını istiyoruz.Yardımcı olur musunuz?

    • Merhaba, ayni sutundaki farkli hucrelerde mi birlikte olmamalilar yoksa ayni hucre icerisinde mi? Eger ilk soyledigim gibiyse her biri icin Countif fonksiyonu yazin ve countiflerin toplami 1 olmasi kosulunu ekleyerek veri dogrulama formul kismina yapistirin. Ornek: Hucre araligimiz A2:A12 olsun, =COUNTIF($A$2:$A$12;”a”)+COUNTIF($A$2:$A$12;”c”)+COUNTIF($A$2:$A$12;”e”)=1

  3. Merhaba,
    f sütünunda bir takım sayılar var. Atıyorum f452 hücresindeyim. bu hücredeki sayının aynısını veya 1 fazlasını veya 1 eksiğini filtrelemek istiyorum. Aynı zamanda bu g452 hücresi içinde geçerli olacak. Yardımlarınız için şimdiden teşekkürler

    • Merhaba,
      Üzerindeki bulunduğunuz aktif hücredeki değerin ayni sütundaki bir eksiği ya da fazlasını filtrelemek için:

      Sub filtre()

      Dim rng As Range

      Set rng = ActiveCell

      Dim i As Integer

      i = rng.Column

      y = rng.Value – 1

      Z = rng.Value + 1

      Selection.AutoFilter Field:=i, Criteria1:=y, Operator:=xlOr, Criteria2:=Z

      End Sub

  4. Kolay gelsin;
    sorum şu excel tablosunda
    a2 hücresinde tc kimlik var b2 adı, c2 soyadı ve d2 de ise almış olduğu kırtasiye malzemeleri var ve a2 de A kişisi var ise b3 de A kişisi var ve aldığı malzeme de var ben istiyorum ki b3 de ki malzeme a2 hücresine yazsın yani a2 hücresinde var olan malzemenin altına yazmasını istiyorum makro ile yardımcı olabilirseniz sevinirim.

  5. Paylaşımınız için teşekkürler. Filtrelenmiş bir alanda ilk hücreyi nasıl seçebiliriz?

  6. Elinize sağlık,
    Muhtemelen yoğunluktan dolayı , uzun zamandan sonra tekrar entry girmeniz beni çok mutlu etti.

Bir Cevap Yazın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Google+ fotoğrafı

Google+ hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s