• DİKKAT

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

Sayısal Ve tarih Filtrelemesi

Tarikkk_

Altın Üye
Katılım
5 Ocak 2020
Mesajlar
407
Excel Vers. ve Dili
Excel 2019
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
 
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..
 
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.
 
Çü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.
 
Çü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
 
Tarih için aşağıdaki gibi deneyiniz.

C++:
aranan = ">=" & CDate(CLng(Uretici_Filtre))
 
Ö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
 
Ö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ı
 
Dosyanız.
 

Ekli dosyalar

Geri
Üst