listbox'u iki tarih arası filteleme

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Daha önce Sn @Haluk tarafından önerilmiş olan bu listbox tarama kodlarını uzun süre bir çok çalışmamda kullandım, eminim ki listbox'uiki tarih arası süzen kodları da kullandım. Ancak arsivde ararken her nasılsa ya karıştırdım, bu sefer de net ile forum üzerinde bulmak isterken de kafa balon oldu, çok fazla örnek olmakla birlikte çalışmanın düzenini bozmamak adına direk siteye " o küçük farkı " sorma kolaycılığı ile günün sonuna ulaştım.

Uygulamak istediğim iki özellik ; 17000 den fazla gerçek veriyi textbox yardımı ile listbox üzerinde iki tarih arası süzebilmek. Sn @Haluk'a ait bu kodlarla tekil bulma çok yerde çalışsa da
1-İki tarih arasını listboxta süzme ( textbox130 ilk tarih için textbox131 son tarih için )
2-Başka textbox ile Tc Kimlik ve telefon gibi sayısal olan verileri süzerek listboxta tek satır haline ulaştırma



Private Sub TextBox130_Change() 'dddddddd
Dim S1 As Worksheet, S2 As Worksheet, Satir As Long

Application.ScreenUpdating = False

Set S1 = Sheets("TABLO")
Set S2 = Sheets("RAPOR")
If TextBox130 <> "" And Len(TextBox130) = 10 Then
If TextBox130 <> "" Then
ListBox2.RowSource = ""
S2.Cells.Delete
S1.Range("a1").AutoFilter
S1.Range("A1:z" & S1.Rows.Count).AutoFilter Field:=9, Criteria1:=Format(CDate(TextBox130.Value), "dd.mm.yyyy") ',TextBox130.Value) & "*"
S1.Range("A1").CurrentRegion.Copy S2.Range("A1")
S1.Range("A2:M" & S1.Rows.Count).AutoFilter Field:=9
Satir = S1.Cells(S1.Rows.Count, 1).End(3).Row
ListBox2.RowSource = "RAPOR!A2:z" & Satir
Else
S1.Range("A2:z" & S1.Rows.Count).AutoFilter Field:=9
Satir = S1.Cells(S1.Rows.Count, 1).End(3).Row
ListBox2.RowSource = "TABLO!A2:z" & Satir
End If
End If
Application.ScreenUpdating = True
End Sub




Userform_initialize içinde de


TextBox130.Value = Format(TextBox130.Value, "dd.mm.yyyy")
TextBox131.Value = Format(TextBox131.Value, "dd.mm.yyyy")


Yerleştirdim , ancak falan tarihten filan tarihe kadar listbox2 de döküme artık düşünemediğimden ulaşamadım. Textboxların kendilerini formatlamak mı gerek artık bunu bile karıştırıyorum.
 

Korhan Ayhan

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

Örnek dosya paylaşır mısınız?
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın Korhan Ayhan ,
Örnek dosya hazırlamak bile birebir olmayacak , güvenilir olduğunuzdan dolayı mesaj kısmı üzerinden gerçek veri bulunan dosyayı sizinle paylaşmama izin verir misiniz ?

Bu arada tarih süzgecini çözdüm ve bu dosyada var , ancak diğer filtrelerle mantıklı ve ortak çalışmıyor. Tek başına tarih aralığını süzüyor ancak bu aralıkta ad süzgecinde ahmet bul dediğimde tarih aralığı bozulmuyor ama ahmet ve o aralıkta olan herkes geliyor,Yani filtrelerin eşgüdümlü çalışması tek başlarına tamam ama süzülen veriyi süzmede güvenilir değil,
Şu anki problemler :
a- süzgeçlerin ortak şekilde güvenilir süzme yapması
b- tc ve telefon süzgeçlerine ait textboxların sayısal görmemesi
 
Son düzenleme:

Korhan Ayhan

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

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Size ; amaç , açıklama ve sorunu anlatan bir metinle dosyayı gönderdim , çok teşekkür ederim
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,731
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Filtreleriniz her değişimde çalışıyor. Paylaştığınız dosyada 1000 satırlık bir veri var. Bu sebeple hızlı sonuç veriyor gibi görünebilir.

Her değişimde filtreleme yapmak yerine bütün kriterleri girdikten sonra bir butona basarak filtreleme yapmak daha mantıklı olacaktır.

Ek olarak metinsel veriler için içerir-içermez-ile başlar-ile biter gibi filtreleme kullanabilirsiniz.

Ama mesela TC NO alanını aynı biçimde filtreleyemezsiniz. Çünkü sayısal olarak veri girişi yapılmış. Bu tür alanlar için filtre kriterinde tamamı yazılarak işlem yapılabilir. Örneğin 1 ile başlayan TC NO ları süzmek isterseniz excelin filtresi ile yapamazsınız. Ama bu alanı Metin (Text) olarak biçimlendirip veri girişini de bu yönde yaparsanız o zaman ile başlar-içerir gibi filtreleme yapabilirsiniz.

Aynı durum TARİH içinde geçerlidir. Sayısal bir alan olduğu için tarihin tamamı yazılarak filtreleme yapabilirsiniz.
 

cems

Altın Üye
Katılım
2 Eylül 2005
Mesajlar
2,549
Excel Vers. ve Dili
office 2010 tr 32bit
Altın Üyelik Bitiş Tarihi
13-06-2029
Sayın Ayhan ,

Açıklamalarınız doğrultusunda düşündüğümde bazı şeylerin cevabını sözlerinizde buldum. En azından 2017 datasında sistemi sağlıklı ve verimli oturtursam 2021 e doğru kalanı yüklersem büyük karışıklık çıkarmayabilir olarak düşünmüştüm. Süzme içi süzme için textboxlardaki sorguları birlikte verip bir tuş vasıtası ile son süzülmüş sonuca gitmek yolunu deneyeceğilm

Öncelikle tarih filtreleri dışında olan TCNo ve telefon no alanlarında textbox metinsel veri gördüğünde adım adım çalışacak . Yarının güniçi programı belli oldu . Tarihin tam girmeden çalışmadığını farkettim , belki gelen veriden de bir alt süzme olabilir diye düşünmüştüm.

Önerileriniz yeni bir ışık yolu tuttu ,gerçekten bazı " sanma" larımı değiştirdi, tüm zamanınız ve incelemeleriniz için çok teşekkür ederim :)
 
Üst