Checkbox ile tarih filtreleme

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
16-07-2027
Arkadaşlar merhaba;

Excele girilen kayıtların whatsapp vasıtası ile gönderilebildiği bir projem var. Proje kurumsal veri içerdiği için paylaşmaya çekindiğimden ekran görüntüsü ile derdimi anlatmaya çalışacağım. Umarım bir çözüm bulabiliriz. :)

Ekteki resimde 2 adet checkbox var bir tanesi tüm kayıtları seçiyor. Diğer eklediğim checkbox'ı da tıkladığımda sadece bugüne ait kayıtların listelenmesi gerekiyor. Bu konuda yardımlarınıza ihtiyacım var. İlla checkbox ile olması şart değil. Başka bir yöntem ile yapılabiliyorsa o da iş görecektir.
 

Ekli dosyalar

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Bence her bir veri için checkbox kullanmak çok mantıklı değil. Bunun yerine bir textboxa tarih girerek arama yapabilirsiniz yada dtpicker nesnesi kullanabilirsiniz.
 

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
16-07-2027
Bence her bir veri için checkbox kullanmak çok mantıklı değil. Bunun yerine bir textboxa tarih girerek arama yapabilirsiniz yada dtpicker nesnesi kullanabilirsiniz.
Levent bey yanıtınız için teşekkür ederim. Checkbox kullanmaktaki amacım iş yoğunluğunda vakit kazanmak. Çünkü gerçekten el ile veri girmeye uğraşmaya pek vakit olmayacak durumda oluyoruz.
Ama şöyle birşey de olabilir.
Kod:
Private Sub UserForm_Initialize()
Dim i As Long
Dim s As String
    ' s = "this is line "
     For i = 1 To 50
             Me.ListBox1.AddItem s & i
     Next
  TextBox1.Enabled = False
    ListBox1.ColumnCount = 27
    ListBox1.ColumnHeads = True
    ListBox1.ListStyle = fmListStyleOption
    ListBox1.MultiSelect = fmMultiSelectMulti
    ListBox1.RowSource = "b2:AA" & [A1004].End(3).Row
    Dim rRange As Range
      OptionButton2 = True

End Sub
Listboxtaki verileri bununla listeliyorum. Listboxta sadece bugünün tarihine ait kayıtları da listeletebiliriz
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Listboxtaki verileri bununla listeliyorum. Listboxta sadece bugünün tarihine ait kayıtları da listeletebiliriz
Tarih verileri hangi sütundan kontrol edilecektir. Ayrıca veriler tarihe göre sıralı durumda mıdır?
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
Aşağıdaki gibi deneyin. Ancak rowsource özelliği ile tüm veriler yüklenmediği için sütun başlıklarınızı kullanamazsınız. Mutlaka kullanmak istiyorsanız bence bu başlıkları listboxın dışına label ile oluşturun. Ayrıca ilk baştaki döngünün amacını anlayamadım. Bu kullanım şeklinde gereksiz duruyor.

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
Dim s As String
    ' s = "this is line "
'     For i = 1 To 50
'             Me.ListBox1.AddItem s & i
'     Next
    
TextBox1.Enabled = False
    ListBox1.ColumnCount = 27
    'ListBox1.ColumnHeads = True
    'ListBox1.ListStyle = fmListStyleOption
    ListBox1.MultiSelect = fmMultiSelectMulti
    
ilktarih = WorksheetFunction.Match(CLng(Date), Range("B:B"), 0)
sontarih = WorksheetFunction.CountIf(Range("B:B"), CLng(Date)) + ilktarih - 1

ListBox1.RowSource = "b" & ilktarih & ":aa" & sontarih

    Dim rRange As Range
      OptionButton2 = True

End Sub
 

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
Altın Üyelik Bitiş Tarihi
16-07-2027
Aşağıdaki gibi deneyin. Ancak rowsource özelliği ile tüm veriler yüklenmediği için sütun başlıklarınızı kullanamazsınız. Mutlaka kullanmak istiyorsanız bence bu başlıkları listboxın dışına label ile oluşturun. Ayrıca ilk baştaki döngünün amacını anlayamadım. Bu kullanım şeklinde gereksiz duruyor.

Kod:
Private Sub UserForm_Initialize()
Dim i As Long
Dim s As String
    ' s = "this is line "
'     For i = 1 To 50
'             Me.ListBox1.AddItem s & i
'     Next
   
TextBox1.Enabled = False
    ListBox1.ColumnCount = 27
    'ListBox1.ColumnHeads = True
    'ListBox1.ListStyle = fmListStyleOption
    ListBox1.MultiSelect = fmMultiSelectMulti
   
ilktarih = WorksheetFunction.Match(CLng(Date), Range("B:B"), 0)
sontarih = WorksheetFunction.CountIf(Range("B:B"), CLng(Date)) + ilktarih - 1

ListBox1.RowSource = "b" & ilktarih & ":aa" & sontarih

    Dim rRange As Range
      OptionButton2 = True

End Sub
kodları bu şekilde değiştirdim fakat "WorksheetFunction sınıfının Match özelliği alınamıyor" hatası veriyor.
 

Levent Menteşoğlu

Administrator
Yönetici
Admin
Katılım
13 Ekim 2004
Mesajlar
16,057
Excel Vers. ve Dili
Excel 2010-32 bit-Türkçe
Excel 365 -32 bit-Türkçe
CLng(Date) yerine sadece Date yazarak deneyin. Verilerinizi bir erp yazılımından çekiyorsanız muhtemelen sayfanızdaki veriler tarih verisi değil. Tam eşleşme olmadığı için hata veriyor.
 
Üst