listbox filtreleme

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,674
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
merhaba,
Aşağıdaki kodda ;
If Veri >= CDate(GIDERRAPOR.TextBox1.Value) And Veri <= CDate(GIDERRAPOR.TextBox2.Value) Then
satırı ile sayfadan veri alabiliyorum.
bu arama krıterine "BD" sutununda label5.caption a göre 3 nci bir kriter eklemeye çalıştım. yapamadım.
yardımlarınız için teşekkür ederim.

Kod:
Sub TARIH()
Worksheets("MASRAFLAR").AutoFilterMode = False
    ReDim Dizi(1 To 6, 1 To 1)
    
    On Error Resume Next
    ListBox1.RowSource = Empty
    ListBox1.Clear
    On Error GoTo 0
    
    If TextBox2 = "" Then
        UserForm_Initialize
    Else
        Say = 0
        Set Data = S1.Range("A2:BI" & S1.Cells(Rows.Count, 2).End(3).Row)
        For Each Veri In Data
        
            If Veri.Column = 1 Then
                  
                If Veri >= CDate(GIDERRAPOR.TextBox1.Value) And Veri <= CDate(GIDERRAPOR.TextBox2.Value) Then
                    Say = Say + 1
                    ReDim Preserve Dizi(1 To 6, 1 To Say)
                    
                    Dizi(1, Say) = Format(Veri, "DD.MM.YYYY")
                    Dizi(2, Say) = Veri.Offset(0, 5)
                    Dizi(3, Say) = Veri.Offset(0, 50)
                    
                                      
                End If
            End If
          
            
        Next
        
        If Say > 0 Then ListBox1.Column = Dizi
    
    End If
End Sub
 

Korhan Ayhan

Administrator
Yönetici
Admin
Katılım
15 Mart 2005
Mesajlar
42,765
Excel Vers. ve Dili
Microsoft 365 Tr-En 64 Bit
Bahsettiğiniz satırın altına bir if bloğu daha ekleyin. Bu blokta Label koşulunu uygulayın.
 

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,674
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Korhan hocam merhaba,
bu kodu ekledim. hata verdi.
Kod:
If Veri >= CDate(GIDERRAPOR.TextBox1.Value) And Veri <= CDate(GIDERRAPOR.TextBox2.Value) Then
                If S1.Range("bd2:bd") = GIDERRAPOR.Label5.Caption Then
 

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,674
Excel Vers. ve Dili
Excel 2010 32 bit
Altın Üyelik Bitiş Tarihi
06-10-2032
Merhaba Korhan Hocam,
Listview e dönüp aşağıdaki kok ile sorun çözüldü.
Teşekkür ederim.
Kod:
Sub VERIAL()

Set sr = Sheets("MASRAFLAR")
'On Error Resume Next

Sheets("MASRAFLAR").Columns.AutoFit ' EXCEL SAYFASINDAKİ SÜTUN GENİŞLİĞİNİ OTOMATİK AYARLAR

ListView1.ListItems.Clear
ListView1.FullRowSelect = True
Dim i As Long


With ListView1
For i = 2 To sr.Cells(65536, "A").End(xlUp).Row
    
    If sr.Cells(i, "bd").Value = GIDERRAPORLISTW.Label5.Caption And _
    CLng(CDate(sr.Cells(i, "a"))) >= CLng(CDate(TextBox1.Value)) And _
    CLng(CDate(sr.Cells(i, "a"))) <= CLng(CDate(TextBox2.Value)) Then
    
    
    .ListItems.Add , , Format(CDate(sr.Cells(i, "a").Value), "DD.MM.YYYY")
        x = x + 1
     .ListItems(x).ListSubItems.Add , , sr.Cells(i, "bd")
       .ListItems(x).ListSubItems.Add , , sr.Cells(i, "M")
       .ListItems(x).ListSubItems.Add , , sr.Cells(i, "F")
       .ListItems(x).ListSubItems.Add , , Format(CDbl(sr.Cells(i, "AY").Value), "#,##0.00")
      
      
    End If
Next i
End With
Set sr = Nothing

End Sub
 
Üst