• DİKKAT

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

Koşullara Göre Sayma İşlemi

  • Konbuyu başlatan Konbuyu başlatan turanb
  • Başlangıç tarihi Başlangıç tarihi
Katılım
18 Mart 2012
Mesajlar
440
Excel Vers. ve Dili
2013
Merhaba,

Aşağıdaki kod bloğunda bazı koşullar var ve sayma işlemini bu koşullar dahilinde yapmasını istiyorum. Ancak Hiç bir koşulu dikkate almadan bütün satırların sayısını veriyor.

Yanlışlık nerede acaba yardımcı olur musunuz.
Kod:
Private Sub CommandButton3_Click()
 Set v = ThisWorkbook.Worksheets("Veri")
    Set d = ThisWorkbook.Worksheets("Dağılım_Raporu")

 For sutun = 3 To 8
        For sıra = 2 To v.[A65536].End(3).Row
        
        If v.Cells(sıra, "B") >= d.Cells(2, 8) And v.Cells(sıra, "B") <= d.Cells(2, 9) Then 'tarih aralığı
        
                
             If Cells(5, sutun) = v.Cells(sıra, "C") And v.Cells(sıra, "F") <> " " Then
                
                d.Cells(13, sutun) = v.Cells(Rows.Count, "C").End(xlUp).Row
                
             End If
             
           End If
           
         Next sıra
        
    Next sutun
    
End Sub
 
Örnek dosyanızı eklerseniz. Yardımcı olmaya çalışalım.
 
If Cells(5, sutun) = v.Cells(sıra, "C") And v.Cells(sıra, "F") <> " " Then

d.Cells(13, sutun) = v.Cells(Rows.Count, "C").End(xlUp).Row

End If
bu ifadede ne yapmak istiyorsunuz.
 
C deki en son dolu satır numarası getir diyorsunuz. Bu da 1244.
 
If Cells(5, sutun) = v.Cells(sıra, "C") And v.Cells(sıra, "F") <> " " Then

d.Cells(13, sutun) = v.Cells(Rows.Count, "C").End(xlUp).Row

End If
bu ifadede ne yapmak istiyorsunuz.

Üstad Dağılım raporundaki tarih aralığındaki ve yine aynı rapordaki il sütunlarına göre 13. satıra il sayılarını getirmek. Dolayısıyla illere göre araç sayılarını bulacaz.
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub CommandButton3_Click()
    Set v = ThisWorkbook.Worksheets("Veri")
    Set d = ThisWorkbook.Worksheets("Dağılım_Raporu")
    
    d.Range("C13:I13").ClearContents
    
    For sutun = 3 To 8
        For sıra = 98 To v.[A65536].End(3).Row
            If v.Cells(sıra, "B") >= d.Cells(2, 8) And v.Cells(sıra, "B") <= d.Cells(2, 9) Then 'tarih aralığı
                If d.Cells(5, sutun) = v.Cells(sıra, "C") Then 'And v.Cells(sıra, "F") <> "" Then
                    d.Cells(13, sutun) = d.Cells(13, sutun) + 1
                End If
            End If
        Next sıra
    Next sutun
    
    d.Range("I13") = WorksheetFunction.Sum(d.Range("C13:H13"))
End Sub
 
Aşağıdaki kodu deneyiniz.

Kod:
Private Sub CommandButton3_Click()
    Set v = ThisWorkbook.Worksheets("Veri")
    Set d = ThisWorkbook.Worksheets("Dağılım_Raporu")
    
    For sutun = 3 To 8
        For sıra = 2 To v.[A65536].End(3).Row
            If v.Cells(sıra, "B") >= d.Cells(2, 8) And v.Cells(sıra, "B") <= d.Cells(2, 9) Then 'tarih aralığı
                If d.Cells(5, sutun) = v.Cells(sıra, "C") And v.Cells(sıra, "F") <> " " Then
                    d.Cells(13, sutun) = d.Cells(13, sutun) + 1
                End If
            End If
        Next sıra
    Next sutun
End Sub


Korhan bey şimdi oldu. Teşekkür ediyorum...
 
Koda küçük bir ekleme yaptım. Üstteki mesajımda ki son halini deneyiniz.
 
Geri
Üst