• DİKKAT

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

Listview ay filtreleme

kemal turan

Altın Üye
Katılım
10 Haziran 2011
Mesajlar
1,677
Excel Vers. ve Dili
Excel 2010 32 bit
Merhaba
Telefondan yazdısım için dosya ekleyemedim.
Sabahtan beri uğraşıyorum.
Artık sormadan araştırarak sorun çözmek için.Gün bilgisi olan sutunda uğraşarak aşağıdaki kod ile filtrelemeyi yapabildim.
Fakat ay adları olan ( Ocak, şubat gibi)sutunda listview filtreleme yapamadım.
Veri combobox2 de aranacak sütun H sütünü olursa aşağıdaki kod nasıl olması lazım.

Kod:
....
And UCase (format (cdate (sr.Cells (ı,  "I").value), "dd.mm.yyyy"))_
Like "*" & format (cdate (SATISRAPORLARI.Textbox1.value), "dd.mm.yyyy") &  "*" The
........
 
Merhaba
Şöyle olabilir
Kod:
And UCase(Format(sr.Cells(ı, "H").Value, "mmmm")) _
= UCase(Format(SATISRAPORLARI.comboBox2.Value, "mmmm")) Then
 
Merhaba Plint hocam
Index out of bounds hatası verdi.
Bu hata benim farklı denemelerimde de vermişti.
Hata satırı
Kod:
.listItems (x).ListSubİtems. Add, , sr.Cells (i, "N")
 
Merhaba
"N" sütununa kadar geldiğine göre x tanımı doğru (x= ListView1.ListItems.Count),
(Yukarıda döngü; " ı " idi " i " ile değiştirmişsiniz.)
"Listview" deki sütun sayısı "i" değerinden küçük sanırım
kodların tümünü ekleyebilirmisiniz?
 
Merhaba plint hocam
Döngü i
Yukarıda yanlış yazmışım
Sizleri gecenin bu vaktinde rahatsız etmiyeyim
Yarın dosya yükler sizleride yormamış olurum
Teşekkürler
 
merhaba,
dosyayı indiremeyen ustalar için;
tarih olan sutunda bu kod çalışıyor
Kod:
Private Sub TextBox1_Change()
Dim i As Long
Set sr = Sheets("VERITABANI")
ListView1.ListItems.Clear
ListView1.FullRowSelect = True
With ListView1
For i = 2 To sr.Cells(65536, "A").End(xlUp).Row
    If UCase(Replace(Replace(sr.Cells(i, "E").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "PERAKENDE SATIŞ" & "*" _
    And UCase(Replace(Replace(sr.Cells(i, "F").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "SATIŞ FİŞ DETAY" & "*" _
    And UCase(format(CDate(sr.Cells(i, "I").Value), "DD.MM.YYYY")) _
    Like "*" & format(CDate(SATISRAPORLARI.TextBox1.Value), "DD.MM.YYYY") & "*" Then
        .ListItems.Add , , sr.Cells(i, "M")
        X = X + 1
       
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "N")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "Q")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "S")
        .ListItems(X).ListSubItems.Add , , format(CDbl(sr.Cells(i, "V").Value), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , format(CDbl(sr.Cells(i, "W").Value), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "AP")
        End If
    
Next i
End With

Set sr = Nothing
SATISRAPORLARI.TextBox2.Value = format(WorksheetFunction.SumIfs(Sheets("VERITABANI").Range("W:W"), Sheets("VERITABANI").Range("F:F"), "SATIŞ FİŞ DETAY", Sheets("VERITABANI").Range("G:G"), ComboBox3.Value, Sheets("VERITABANI").Range("AP:AP"), "NAKİT"), "#,##0.00")
SATISRAPORLARI.TextBox3.Value = format(WorksheetFunction.SumIfs(Sheets("VERITABANI").Range("W:W"), Sheets("VERITABANI").Range("F:F"), "SATIŞ FİŞ DETAY", Sheets("VERITABANI").Range("G:G"), ComboBox3.Value, Sheets("VERITABANI").Range("AP:AP"), "KREDİ KARTI"), "#,##0.00")
SATISRAPORLARI.TextBox4.Value = format(WorksheetFunction.SumIfs(Sheets("VERITABANI").Range("W:W"), Sheets("VERITABANI").Range("F:F"), "SATIŞ FİŞ DETAY", Sheets("VERITABANI").Range("G:G"), ComboBox3.Value, Sheets("VERITABANI").Range("AP:AP"), "SENET"), "#,##0.00")
SATISRAPORLARI.TextBox5.Value = format(WorksheetFunction.SumIfs(Sheets("VERITABANI").Range("W:W"), Sheets("VERITABANI").Range("F:F"), "SATIŞ FİŞ DETAY", Sheets("VERITABANI").Range("G:G"), ComboBox3.Value, Sheets("VERITABANI").Range("AP:AP"), "ÇEK"), "#,##0.00")

End Sub

sutunda ay adları olan bu kod çalışmıyor.
Kod:
Private Sub ComboBox2_Change()
ay = ComboBox1.ListIndex + 1
Dim i As Long
Set sr = Sheets("VERITABANI")

With ListView1
For i = 2 To sr.Cells(65536, "A").End(xlUp).Row

ListView1.ListItems.Clear
ListView1.FullRowSelect = True
    

    If UCase(Replace(Replace(sr.Cells(i, "E").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "PERAKENDE SATIŞ" & "*" _
    And UCase(Replace(Replace(sr.Cells(i, "F").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "SATIŞ FİŞ DETAY" & "*" _
    And UCase(format(sr.Cells(i, "H").Value, "MMMM")) _
    = UCase(format(SATISRAPORLARI.ComboBox2.Value, "MMMM")) Then
    
   .ListItems.Add , , sr.Cells(i, "M")
        X = X + 1
       .ListItems(X).ListSubItems.Add , , sr.Cells(i, "N")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "Q")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "S")
        .ListItems(X).ListSubItems.Add , , format(CDbl(sr.Cells(i, "V").Value), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , format(CDbl(sr.Cells(i, "W").Value), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "AP")
    End If
    
Next i
End With
Set sr = Nothing
End Sub
 
Merhaba
Dosyanız bende "Listview" version farkından dolayı çalışmadı
Aşağıdaki gibi deneyelim. Kırmızı bölüm döngü dışında olmalı.
Kod:
Private Sub ComboBox2_Change()
ay = ComboBox1.ListIndex + 1
Dim i As Long
Set sr = Sheets("VERITABANI")
[COLOR="Red"]ListView1.ListItems.Clear
ListView1.FullRowSelect = True[/COLOR]
With ListView1
For i = 2 To sr.Cells(65536, "A").End(xlUp).Row
If UCase(Replace(Replace(sr.Cells(i, "E").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "PERAKENDE SATIŞ" & "*" _
    And UCase(Replace(Replace(sr.Cells(i, "F").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "SATIŞ FİŞ DETAY" & "*" _
    And UCase(Format(sr.Cells(i, "H").Value, "MMMM")) _
    = UCase(Format(SATISRAPORLARI.ComboBox2.Value, "MMMM")) Then
    
   .ListItems.Add , , sr.Cells(i, "M")
        X = X + 1
       .ListItems(X).ListSubItems.Add , , sr.Cells(i, "N")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "Q")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "S")
        .ListItems(X).ListSubItems.Add , , Format(CDbl(sr.Cells(i, "V").Value), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , Format(CDbl(sr.Cells(i, "W").Value), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "AP")
    End If
    
Next i
End With
Set sr = Nothing
End Sub
 
SN.PLİNT
Çok teşekkür ederim.
Hakkınızı helal ediniz..
Selametle kalınız
 
Merhaba Hocalarımız,
iki tarih arası geciken ödemeleri bulup listview e almak için aşağıdaki kodu oluşturdum.
Hata vermiyor lakin verileride getirmiyor.
textbox11 e eşit büyük ise,
textbox12 ye eşit küçük ise ye karşılık gelen bölümde yanlış nerde.
Teşekkür ederim.
Kod:
Private Sub TextBox12_Exit(ByVal Cancel As MSForms.ReturnBoolean)
TextBox12 = format(CDate(TextBox12.Value), "DD.MM.YYYY")
Set s1 = Sheets("VERITABANI")
VERİ = WorksheetFunction.SumIfs(s1.Range("AG:AG"), s1.Range("AH:AH"), "GECİKEN ÖDEME", s1.Range("AD:AD"), ">=" & CLng(CDate(TextBox11.Value)), s1.Range("AD:AD"), "<=" & CLng(CDate(TextBox12.Value)))
TextBox13 = format(CDbl(VERİ), "#,##0.00")

Dim i As Long
Set sr = Sheets("VERITABANI")
ListView1.ListItems.Clear
ListView1.FullRowSelect = True
With ListView1
For i = 2 To sr.Cells(65536, "A").End(xlUp).Row
    If UCase(Replace(Replace(sr.Cells(i, "E").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "PERAKENDE SATIŞ" & "*" _
    And UCase(Replace(Replace(sr.Cells(i, "AH").Value, "ı", "I"), "i", "İ")) _
    Like "*" & "GECİKEN ÖDEME" & "*" _
    [B]And UCase(format(CDate(sr.Cells(i, "AD").Value), "DD.MM.YYYY")) _
    = ">=" & format(CDate(TextBox12.Value), "DD.MM.YYYY") _
    And UCase(format(CDate(sr.Cells(i, "AD").Value), "DD.MM.YYYY")) _
    = "<=" & format(CDate(TextBox11.Value), "DD.MM.YYYY") Then[/B]
        .ListItems.Add , , sr.Cells(i, "M")
        X = X + 1
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "A")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "N")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "L")
        .ListItems(X).ListSubItems.Add , , format(sr.Cells(i, "AD"), "DD.MM.YYYY")
        .ListItems(X).ListSubItems.Add , , format(sr.Cells(i, "AE"), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , format(sr.Cells(i, "AF"), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , format(sr.Cells(i, "AG"), "#,##0.00")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "AH")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "BF")
        .ListItems(X).ListSubItems.Add , , sr.Cells(i, "BG")
        '.ListItems(x).ListSubItems.Add , , format(sr.Cells(i, "Y"), "#,##0.00")
    End If    
Next i
End With
Set sr = Nothing
End Sub
 
Merhaba
Yukarıdaki kodlarınızdaki "= ">=" &" bölüm aşağıdaki kırmızı şeklinde olmalı


Kod:
[SIZE="2"] 
'....
'...
 And UCase(Format(CDate(sr.Cells(i, "AD").Value), "DD.MM.YYYY")) _
    [COLOR="Red"]<= [/COLOR]Format(CDate(TextBox12.Value), "DD.MM.YYYY") _
    And UCase(Format(CDate(sr.Cells(i, "AD").Value), "DD.MM.YYYY")) _
    [COLOR="Red"]>= [/COLOR]Format(CDate(TextBox11.Value), "DD.MM.YYYY") Then
        .ListItems.Add , , sr.Cells(i, "M")
        X = X + 1 
'...
'....
[/SIZE]
 
Teşekkürler ederim
Deneyip sonucu bildiririm.
Selametle
 
İşlem tamam..
Teşekkürler
 
Geri
Üst