Sayısal Ve tarih Filtrelemesi

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
407
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Merhabalar aşağıdaki vba koduyla Sayfamda ActiveX Metin Kutusunda bazı sütunlar için Filtreleme kullanıyorum. metinsel sütunlarda sorun yok ama sayı ve tarih gibi ifadeleri getirmiyor. tarih ve sayı gibi değerleri filtrelemede kullanma şansımız varmı acaba teşekkür ederim.
Kod:
Private Sub Uretici_Filtre_Change()

If Kontrol = 1 Then Exit Sub
ActiveSheet.Unprotect
    If Uretici_Filtre = "" Then
        ActiveSheet.ListObjects("T_AS").Range.AutoFilter Field:=13
    Else
        aranan = "*" & Uretici_Filtre & "*"
        ActiveSheet.ListObjects("T_AS").Range.AutoFilter Field:=13, Criteria1:= _
        aranan
    End If
  ActiveSheet.Protect
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,767
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Elbette kullanabilirsiniz.

Fakat dikkat etmeniz gereken kural var. Tarih ve sayısal değerleri içerir mantığı ile filtre uygulayamazsınız.

Sayısal filtreler geçerlidir.

Eşittir - Büyüktür - Büyük Eşittir - Küçüktür - Küçük Eşittir gibi..
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
407
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Elbette kullanabilirsiniz.

Fakat dikkat etmeniz gereken kural var. Tarih ve sayısal değerleri içerir mantığı ile filtre uygulayamazsınız.

Sayısal filtreler geçerlidir.

Eşittir - Büyüktür - Büyük Eşittir - Küçüktür - Küçük Eşittir gibi..
Hocam bu kodu cariler sütununa uyguladığımda M harfi yazdığımda içinde M olan tüm metinsel değerleri getiriyor miktar sütununa uyguladığımda 6 yazdığımda boş getiriyor oysa sütunda hem 6 ile başlayan değerler var hemde içinde 6 olan rakamlar demek istediğim en azından eşit olanı getirsin istiyorum nasıl yapabilirim. Teşekkür ederim.
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,767
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Çünkü içerir kriterini uygulamışsınız.

Kod:
aranan = "*" & Uretici_Filtre & "*"
Sayısal işlemlerde mesela aşağıdaki gibi kullanmalısınız.

Kod:
aranan = ">=" & Uretici_Filtre
Eğer değeriniz 6 ise bu kod Büyük Eşit 6 filtresini uygular. Kendinize göre uyarlamasını yaparsınız.
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
407
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Çünkü içerir kriterini uygulamışsınız.

Kod:
aranan = "*" & Uretici_Filtre & "*"
Sayısal işlemlerde mesela aşağıdaki gibi kullanmalısınız.

Kod:
aranan = ">=" & Uretici_Filtre
Eğer değeriniz 6 ise bu kod Büyük Eşit 6 filtresini uygular. Kendinize göre uyarlamasını yaparsınız.
hocam biraz geç oldu ama ilginizden dolayı teşekkür ederim. yeni deneme şansım oldu bu yine tarihe filtre uygulamıyor herhangi bir sayı yazıldığında listedeki tüm sonuçlar kayboluyor
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,767
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Tarih için aşağıdaki gibi deneyiniz.

C++:
aranan = ">=" & CDate(CLng(Uretici_Filtre))
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
407
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
hocam malesef bu yine çalışmadı örnek dosya ekledim
 

Ekli dosyalar

Katılım
6 Mart 2005
Mesajlar
6,233
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
Örneğiniz için aşağıdaki kodu deneyiniz.Tarihleri sayfaya yazdığınız şekilde noktalı sayı olarak yazınız.Yazdığın tarihten sonrakileri alır.Yazdığınız tarihi almasını isterseniz > işaretini = yapınız.
Kod:
Private Sub TextBox1_Change()
Dim S As Variant
S = TextBox1
If IsNumeric(S) = True And Len(S) > 7 Then
a = WorksheetFunction.Substitute(S, ".", "/")
Range("B3").AutoFilter Field:=2, Criteria1:=">" & CDbl(CDate(a))
Else
Range("B100").AutoFilter Field:=2
End If
End Sub
 

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
407
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
26-10-2028
Örneğiniz için aşağıdaki kodu deneyiniz.Tarihleri sayfaya yazdığınız şekilde noktalı sayı olarak yazınız.Yazdığın tarihten sonrakileri alır.Yazdığınız tarihi almasını isterseniz > işaretini = yapınız.
Kod:
Private Sub TextBox1_Change()
Dim S As Variant
S = TextBox1
If IsNumeric(S) = True And Len(S) > 7 Then
a = WorksheetFunction.Substitute(S, ".", "/")
Range("B3").AutoFilter Field:=2, Criteria1:=">" & CDbl(CDate(a))
Else
Range("B100").AutoFilter Field:=2
End If
End Sub
hocam ilginizden dolayı çok teşekkür ederim formül hata veriyor örnek dosyaya ekleme şansımız varmı
 
Katılım
6 Mart 2005
Mesajlar
6,233
Excel Vers. ve Dili
Excel Vers. ve Dili:
Office 2016 TR 64 Bit
Altın Üyelik Bitiş Tarihi
22/12/2022
Dosyanız.
 

Ekli dosyalar

Üst