• DİKKAT !

    Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak Dosya Yükleme tamamen ücretsizdir.

Çözüldü vba countif eğer bir tarih diğerinden büyükse

Bu konu çözüldü olarak işaretlenmiştir. Çözülmediğini düşünüyorsanız konuyu rapor edebilirsiniz.
Durum
Konu Çözümlendiği İçin Kapatılmıştır.

erenmur

Yeni Üye
Katılım
15 Mar 2022
Mesajlar
1
Aldığı beğeni
0
Excel V
Office 2013 EN
Konu Sahibi
Elimde ID ve ID giriş tarihi sütunları var. Ben üçüncü bir sütuna her ID için giriş tarihi, başka bir sütunda bulunan spesifik bir tarihten büyük kaç row var bunu saydırmak istiyorum. Formülle yaparken hesaplanıyor fakat vba ile sürekli 0 çıkıyor sonuç. Muhtemel sebebine dair fikri olan var mı?
 
Elimde ID ve ID giriş tarihi sütunları var. Ben üçüncü bir sütuna her ID için giriş tarihi, başka bir sütunda bulunan spesifik bir tarihten büyük kaç row var bunu saydırmak istiyorum. Formülle yaparken hesaplanıyor fakat vba ile sürekli 0 çıkıyor sonuç. Muhtemel sebebine dair fikri olan var mı?
vba da tür dönüşümleri olayından kaynaklı muhtemelen,
range tanımlayıp tür dönüşümü yapmazsanız string değer olarak algılar ve bu durumda da stringler arasında hangisinin büyük ya da küçük olduğunu algılamaz.
Örnek:
Range("A1").value yazmak yerine CDate(Range("A1").value) gibi
Birincisinde A1 hücresindeki 01.01.2022 tarihini (misal veriyorum) "01.01.2022" yani string olarak tanır
İkincisinde 01.01.2022 yani date olarak tanır
 
Sayın erenmur şu şekilde deneyiniz:
WorksheetFunction.CountIf(Range("A1:A20"), CDate("03.05.2022"))

A1:A20 aralığında 03.05.2022 tarihini sayar.

Aranan veri hücrede yazılıysa CDate ile çevirmeye gerek yoktur. Örnek:

WorksheetFunction.CountIf(Range("A1:A20"), Range("B1").Value)

Ancak tarihi Textbox'tan alıyorsanız gelen veri String tipli olacağı için onu tarihe çevirmeniz gerekir. Örnek

WorksheetFunction.CountIf(Range("A1:A20"), CDate(TextBox1.Value))
 
Sayın erenmur ; büyük-küçük sayımı için ise tarihe çevirmek yetmez.
Tarihe çevrilen veriyi sayıya da çevirmeniz gerekir.

WorksheetFunction.CountIf(Range("A1:A20"), ">" & CDbl(CDate("03.05.2022")))

A1:A20 aralığında 03.05.2022 tarihinden büyük olanları sayar.

Aranan veri hücrede yazılıysa:

WorksheetFunction.CountIf(Range("A1:A20"), ">" & CDbl(Range("B1").Value))

Veriyi Textbox'tan alıyorsanız:

WorksheetFunction.CountIf(Range("A1:A20"), CDbl(CDate(TextBox1.Value)))
 
Örnek çalışma ektedir. kolay gelsin
 
Çözüm
Durum
Konu Çözümlendiği İçin Kapatılmıştır.
Geri
Üst