• DİKKAT

    DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
    Altın Üyelik Hakkında Bilgi

Filtrelemede İlgili Sütundaki Tüm Verileri Seçme

mustafa1205

Altın Üye
Katılım
23 Ekim 2010
Mesajlar
1,435
Excel Vers. ve Dili
Office 2016 / 64 Bit - Türkçe
Bir çalışmam var ve burda birde fazla kritere göre makro ile süzme işlemi yapmaktayım. Kullandığım kod ActiveSheet.Range("$A$1:$J$3161").AutoFilter Field:=4, Criteria1:="Adana" şeklindedir. Criteria1:="Adana" kısmını hücreden almaktadır. Veri doğrulama ile ili seçip hücreden almasını sağlıyorum. Bazen il hücresi boş kalıyor ve tüm hücredeki verileri seçmem gerekiyor. Bunu da Criteria1:="<>" kodu ile yapabiliyorum ama aralarında boş hücreler var. O yüzden bu sütunun filtrelemesinde boş ve dolu hücreler dahil hepsini seçmeyi sağlayan kodun Criteria1:=??? bu kısmı lazım. Umarım anlatabilmişimdir.
 
Merhaba,

İşin özünde aslında hücre boşsa hiç filtre uygulanmamış gibi davranmasını istiyorsunuz.

Ben hücreyi B1 olarak varsaydım. Siz kendi dosyaniza göre revize edersiniz.

C++:
If Range("B1") = "" Then
On Error Resume Next
ActiveSheet.ShowAllData
On Error GoTo 0
Else
ActiveSheet.Range("$A$1:$J$3161").AutoFilter Field:=4, Criteria1:= Range("B1").Value
End If
 
Hocam geç cevap yazabildim. Kusura bakmayın. Mobilden yazıyorum. İlk satırda dediğiniz gibi filtre uygulanmamış gibi olmasını istemiştim. Lakin özür dileyerek eksik anlattığım husus şu, bu filtremede B1 hücresine göre değer aldık. Gayet uygun. Ancak kod içerisinde ard arda B2, B3, B4, B5 hücrelerinden değer alan aynı mantıkta 5 adet filtreleme kodu olacak. Yani B1 hücresinde boş kalırsa onu filtrelemeyecek B2 ye geçecek ve devamı da bunun gibi olacak
 
Örnek dosya paylaşarak yapmak istediğiniz işlemi açıklar mısınız?
 
Hocam Şuan isyerinde olduğum için müsaadenizle akşam mesai dönüşü paylaşacağım muhakkak
 
Korhan Hocam biraz geç oldu kusura bakmayın. Örnek dosya Ek'tedir.
 

Ekli dosyalar

Deneyiniz.

C++:
Sub Filtre()
    Dim S1 As Worksheet, S2 As Worksheet, S3 As Worksheet
    
    Set S1 = Sheets("Sayfa1")
    Set S2 = Sheets("Sayfa2")
    Set S3 = Sheets("RAPORLAMA")
    
    If S3.Range("B12").Value <> "" Then S1.Range("A:D").AutoFilter Field:=1, Criteria1:=S3.Range("B12").Value
    If S3.Range("B13").Value <> "" Then S1.Range("A:D").AutoFilter Field:=2, Criteria1:=S3.Range("B13").Value
    If S3.Range("B14").Value <> "" Then S1.Range("A:D").AutoFilter Field:=3, Criteria1:=S3.Range("B14").Value
    If S3.Range("B15").Value <> "" Then S1.Range("A:D").AutoFilter Field:=4, Criteria1:=S3.Range("B15").Value
    
    S1.Range("A1").CurrentRegion.Copy S2.Range("A1")
    If S1.FilterMode Then S1.ShowAllData

    S2.Select

    Set S1 = Nothing
    Set S2 = Nothing
    Set S3 = Nothing
End Sub
 
Hocam çok güzel bir şekilde çalıştı. Çok teşekkür ederim. Emeğinize sağlık
 
Geri
Üst