iki tarih arası süzme

Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
veri.Range("a1").AutoFilter Field:=2, Criteria1:=CDate(TextBox1.Value), Operator:=xlAnd _
, Criteria2:=CDate(TextBox3.Value)


Arkadaslar bu kod neden calismiyor mantik olarak herseyi dogru textbox1 ile textbox3 e yazilan tarihlerin arasini suzmesi gerekirken süzme işlemi boş çıkıyor..


Yardımlarınızı rica ederim.
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
Bi ara şöyle bi örnek kod yazmışım, süzme konusunda faydalı olabilir.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin.

Kod:
veri.Range("a1").AutoFilter Field:=2, Criteria1:=[B][COLOR=blue]clng([/COLOR][/B]CDate(TextBox1.Value)[COLOR=blue][B])[/B][/COLOR], Operator:=xlAnd _
, Criteria2:=[COLOR=blue][B]clng([/B][/COLOR]CDate(TextBox3.Value)[COLOR=blue][B])[/B][/COLOR]
 
Katılım
25 Nisan 2007
Mesajlar
459
Excel Vers. ve Dili
2007
Soru anında vakit yokluğundan detaya inememiştim.

Üstad leventm gerekli cevabı vermiş.

Excel'de tarih gördüğümüz şey aslında başlangıcı 1 olan ve 01.01.1900 'a tekamül eden sayıdan başlar. Ardışık olarak 2 sayısı 02.01.1900'ü, 32 sayısı 01.şubat.1900'ü gösterir. Başlangıç tarihinden bugüne kadar 39248 gün geçtiği için 15.06.2007 tarihi ise sayısal olarak 39248'e karşılık gelir.

Excel hesap yaparken 39248'i görür. Biz bu sayıyı görüntülerken tarih formatı uygulayarak tarih gibi gösteririz. Matematiksel tüm işlemler sayı olarak yapılır.

İşte biz aslında textboxumuza metinsel olarak "11/01/2007" gireriz ve bunu tarih sanırız. Bu sayının tarih olarak algılanması için cdate() gibi bir kod ile tarihe çevirmemiz gerekir. VBA'nın bu tarihi işlemlerinde sayı gibi algılaması için clng() gibi bir fonksiyon ile sayıya çevirmemiz gerekir.

Sayın leventm bu yönde bir örnek vermiş.

Açıkçası ben genelde cdate("15.01.2007") * 1 gibi bir işlemle sayıya çeviriyordum.

Yanlız bu otomatik süzme işlemi de muhtemelen işinizi görmeyecek zira yukarıdaki kod kriter olarak textbox1 ve textbox3 'e eşitlik şartı ekliyo.

Bu durumda bu iki textbox'taki tarihler farklı ise hiçbir uygun kayıt bulamayacaktır. Sadece iki textbox eşitse, o tarihteki kayıtları getirir.

Ama sizin yapmak istedi&#287;iniz. >= textbox1 ve <=textbox3 &#351;eklinde
bu durumda

veri.Range("a1").AutoFilter Field:=2, Criteria1:=">=" & clng(CDate(TextBox1.Value)), _
Operator:=xlAnd _
, Criteria2:= "<=" & clng(CDate(TextBox3.Value))

olmas&#305; gerekir. Ger&#231;i herhangi bir deneme yapmad&#305;m ama mant&#305;k bu.
 
Katılım
6 Ekim 2004
Mesajlar
250
Excel Vers. ve Dili
MSOffice 2010 TR
Altın Üyelik Bitiş Tarihi
19-11-2020
Arkada&#351;lar yard&#305;mlar&#305;n&#305;z i&#231;in te&#351;ekk&#252;r ederim. Kod son haliyle xxcell &#252;stad&#305;n d&#252;zeltigi &#351;ekilde &#231;al&#305;&#351;&#305;yor.

Bu uzun &#246;&#287;retici a&#231;&#305;klama i&#231;in xxcell ustada ayr&#305;ca te&#351;ekk&#252;r ederim. te&#351;bih yapmak gerekirse bana ve bu soruyu merak edip okuyan arkada&#351;lara bal&#305;k vermi&#351; olmuyor, bal&#305;k tutmas&#305;n&#305; &#246;&#287;retmi&#351; oluyorsunuz.

Ger&#231;ekten ara&#351;t&#305;rd&#305;&#287;&#305;mda forumda bir ka&#231; sefer sorulmu&#351; bu soruya direkt makro kodlar&#305;yla &#231;&#246;z&#252;m hi&#231; verilmemi&#351;. Hep Excell h&#252;crelerinden yararlan&#305;larak geli&#351;mi&#351; s&#252;z ve form&#252;l takviyeleriyle &#231;&#246;z&#252;me ula&#351;&#305;lm&#305;&#351;.

A&#231;t&#305;&#287;&#305;m konu ba&#351;l&#305;&#287;&#305;n&#305;nda da "iki tarih aras&#305; s&#252;z " oldu&#287;unu d&#252;&#351;&#252;n&#252;rsek eminim ki y&#252;zlerce ki&#351;i bu cevaptan yararlan&#305;p rapor alma i&#351;lemlerinde bu kodu kullanacaklard&#305;r.

Kendi ad&#305;ma ve " iki tarih aras&#305; s&#252;z " probleminde ula&#351;&#305;lan sonu&#231;tan yararlanacak olan b&#252;t&#252;n arkada&#351;lar ad&#305;na sizlere te&#351;ekk&#252;r ederim. Allah raz&#305; olsun. &#304;yi &#231;al&#305;&#351;malar.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,058
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
........Ger&#231;ekten ara&#351;t&#305;rd&#305;&#287;&#305;mda forumda bir ka&#231; sefer sorulmu&#351; bu soruya direkt makro kodlar&#305;yla &#231;&#246;z&#252;m hi&#231; verilmemi&#351;. Hep Excell h&#252;crelerinden yararlan&#305;larak geli&#351;mi&#351; s&#252;z ve form&#252;l takviyeleriyle &#231;&#246;z&#252;me ula&#351;&#305;lm&#305;&#351;..........
Bu konu forumda defalarca i&#351;lenmi&#351;tir, itiraf etmeliyimki arama motoru ile ula&#351;mak ger&#231;ekten kolay de&#287;il. A&#351;a&#287;&#305;daki ula&#351;abildi&#287;im linkleri veriyorum.

s&#252;zme i&#351;leminde yard&#305;m yard&#305;m yard&#305;m

user formda de&#287;i&#351;ik kriterlere g&#246;re rapor alma

iki tarih aras&#305; s&#252;zme

Verileri Filtre &#304;le Aktarma

Sorgulama

Autofiter - s&#252;z yard&#305;m

Not: Ayr&#305;ca tarih verilerinin sayfaya aktar&#305;m&#305;nda clng fonksiyonunun kullan&#305;lmas&#305; gerekti&#287;i ile ilgilide &#231;ok say&#305;da &#246;rnek mevcuttur. Arama motoruna "clng(cdate(" yazarak arama yapman&#305;z&#305; &#246;neririm.
 
Katılım
21 Mayıs 2007
Mesajlar
57
Excel Vers. ve Dili
Excel 2010 Türkçe
Arkada&#351;lar hepinize &#231;ok te&#351;ekk&#252;r ederim, &#231;ok kullan&#305;&#351;l&#305; bilgiler.. &#304;yi &#231;al&#305;&#351;malar.
 
Üst