• DİKKAT

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

Checkbox ile tarih filtreleme

serif_007

Altın Üye
Katılım
5 Nisan 2014
Mesajlar
155
Excel Vers. ve Dili
Excel 2019
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

  • Ekran görüntüsü 2021-12-09 165356.png
    Ekran görüntüsü 2021-12-09 165356.png
    42.1 KB · Görüntüleme: 8
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.
 
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
 
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
 
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.
 
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.
 
Geri
Üst