• DİKKAT

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

VBA İle Filtrelemem Çalışmıyor.

Katılım
4 Aralık 2017
Mesajlar
134
Excel Vers. ve Dili
Excell 2016
Kod:
Sub yasfiltresi()

sonsutun = Cells.SpecialCells(xlCellTypeLastCell).Column
sonsatir = Cells.SpecialCells(xlCellTypeLastCell).Row

ActiveSheet.Range(Cells(1, 1), Cells(sonsatir, sonsutun)).AutoFilter Field:=3, Criteria1:= _
        ">=01.01.1993", Operator:=xlAnd, Criteria2:="<=31.12.1993"
End Sub

sütunu ve satırı çok güzel saydırıyor,
filtrelemeyi de yapıyor ama boş sayfa çıkarıyor karşıma, yani tüm verileri yok ediyor. tüm veriyi filtreliyor.

neyi yanlış yapıyorum?

kodu yazdıktan sonra filtreleme seçeneklerinden "arasında" yazana tıkladıktan sonra kriterleri doğru yazdığını görüyorum. tekrar tamam dediğimde doğru filtreliyor ama kodla yapınca olmuyor.
 
bu arada karşılıkları olan sayısal ifadeleri girdiğimde oluyor
yani 01.01.1993 ün karşılığı olan 33479 (örnek veriyorum) yazdığımda doğru sonucu alıyorum.
 
Aşağıdaki şekilde deneyiniz.
Kod:
ActiveSheet.Range(Cells(1, 1), Cells(sonsatir, sonsutun)).AutoFilter Field:=3, Criteria1:= _
       ">=" & CDbl(CDate("01/01/1993")) , Operator:=xlAnd, Criteria2:="<=" & CDbl(CDate("31/12/1993"))
 
ellerinize sağlık,

son bir soru olarak, buradaki tarihi kullanıcıya girdirtmek istiyorum.

yani excell açıldığında 2 tane inputbox çıksın (bunu butonla da yapabilir)
Doğum Tarihi Aralığını Giriniz yazsın,
kullanıcı
ilk kutuya 01.01.1993
ikinci kutuya 31.12.1993 yazdığında bu tarihleri otomatik filtrelesin,
mümkün mü?
 
Uygun şekilde yazınız ve a,b değerlerini tarihlere atayınız.Olur sanırım.İşim çıkdı deneyemedim.Kusura bakmayın.
a = InputBox("İlk tarihi giriniz.", "İlk tarih")
b= InputBox("İkinci tarihi giriniz.", "İkinci tarih tarih")
 
çok güzel oldu, teşekkür ederim :)

Kod:
Sub yasfiltresi()
sonsutun = Cells.SpecialCells(xlCellTypeLastCell).Column
sonsatir = Cells.SpecialCells(xlCellTypeLastCell).Row
a = InputBox("İlk tarihi giriniz.Örn:01/01/1993 şeklinde yazınız ", "İlk tarih")
b = InputBox("İkinci tarihi giriniz.Örn:31/12/1993 şeklinde yazınız", "İkinci tarih")
ActiveSheet.Range(Cells(1, 1), Cells(sonsatir, sonsutun)).AutoFilter Field:=3, Criteria1:= _
       ">=" & CDbl(CDate(a)), Operator:=xlAnd, Criteria2:="<=" & CDbl(CDate(b))
End Sub
Denedim yukarıdaki şekilde.Tarihleri:01/01/1993 şeklinde yazdığınız çalışıyor
Dönüş yaptığınız için teşekkür ederim.
 
Son düzenleme:
Geri
Üst