• DİKKAT

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

raporlama

Katılım
5 Eylül 2007
Mesajlar
1,247
Excel Vers. ve Dili
ofis 2010
iyi günler; yaptığım çalışmada raporlama kısmında sorun yaşıyorum. makro olarak yardımcı olabilecek arkadaşlara şimdiden teşekkürler. hareket sayfasına oluşturduğum verileri tasnifli olarak Rapor sayfasına aktarmak istiyorum.
http://s5.dosya.tc/server4/yznv9q/CEK__HAMZAAKD.rar.html
P093YQ.jpg
[/url][/IMG]
 
Altın üyeliğiniz var, sayfaya da yükleme yapabilirsiniz. Yükleme sitelerinde antivirüs tehlike sinyali veriyor.
 
resim ekleme

resim ekleme
 

Ekli dosyalar

  • RAPOR.jpg
    RAPOR.jpg
    145.1 KB · Görüntüleme: 11
Giriş ve çıkış tutarı aynı vade çek tarihlerinin de aynı olduğunda bu sonuç alınıyor,deneyiniz.


Kod:
Sub rapor()
Set s1 = Sheets("HAREKET")
Set s2 = Sheets("RAPOR")
son = s1.Range("B" & Rows.Count).End(3).Row
a = s1.Range("B2:H" & son).Value
On Error Resume Next
ReDim b(1 To UBound(a), 1 To UBound(a, 2))
For i = 1 To UBound(a)
    If a(i, 1) = "Giriş" Then
        say = say + 1
        b(say, 1) = a(i, 2)
        b(say, 3) = a(i, 3)
        b(say, 4) = a(i, 4)
        b(say, 6) = a(i, 7)
    End If
Next i

Set d = CreateObject("scripting.dictionary")
ReDim b1(1 To UBound(a), 1 To UBound(a, 2))
For i = 1 To UBound(a)
    krt = a(i, 3) & a(i, 5)
    If Not IsEmpty(krt) Then
        If Not d.exists(krt) Then
            s = s + 1
            d(krt) = s
            b1(s, 1) = a(i, 2)
            b1(s, 2) = a(i, 5)
            b1(s, 3) = a(i, 7)
        End If
    End If
Next i

tbl = Array(b)
ReDim c(1 To UBound(tbl(0)), 1 To UBound(tbl(0), 2))
ReDim c1(1 To UBound(tbl(0)), 1 To UBound(tbl(0), 2))
ReDim c2(1 To UBound(tbl(0)), 1 To UBound(tbl(0), 2))

For i = 1 To UBound(tbl(0))
    krt = tbl(0)(i, 3) & tbl(0)(i, 4)
    c(i, 1) = b1(d(krt), 1)
    c1(i, 1) = b1(d(krt), 2)
    c2(i, 1) = b1(d(krt), 3)
Next i

s2.Range("A2:G" & Rows.Count).ClearContents
s2.[A2].Resize(say, 7) = b
s2.[B2].Resize(say) = c
s2.[E2].Resize(say) = c1
s2.[G2].Resize(say) = c2
MsgBox "İşlem tamam...", vbInformation
End Sub
 
makro

Giriş ve çıkış tutarı aynı vade çek tarihlerinin de aynı olduğunda bu sonuç alınıyor,deneyiniz.


Kod:
Sub rapor()
Set s1 = Sheets("HAREKET")
Set s2 = Sheets("RAPOR")
son = s1.Range("B" & Rows.Count).End(3).Row
a = s1.Range("B2:H" & son).Value
On Error Resume Next
ReDim b(1 To UBound(a), 1 To UBound(a, 2))
For i = 1 To UBound(a)
    If a(i, 1) = "Giriş" Then
        say = say + 1
        b(say, 1) = a(i, 2)
        b(say, 3) = a(i, 3)
        b(say, 4) = a(i, 4)
        b(say, 6) = a(i, 7)
    End If
Next i

Set d = CreateObject("scripting.dictionary")
ReDim b1(1 To UBound(a), 1 To UBound(a, 2))
For i = 1 To UBound(a)
    krt = a(i, 3) & a(i, 5)
    If Not IsEmpty(krt) Then
        If Not d.exists(krt) Then
            s = s + 1
            d(krt) = s
            b1(s, 1) = a(i, 2)
            b1(s, 2) = a(i, 5)
            b1(s, 3) = a(i, 7)
        End If
    End If
Next i

tbl = Array(b)
ReDim c(1 To UBound(tbl(0)), 1 To UBound(tbl(0), 2))
ReDim c1(1 To UBound(tbl(0)), 1 To UBound(tbl(0), 2))
ReDim c2(1 To UBound(tbl(0)), 1 To UBound(tbl(0), 2))

For i = 1 To UBound(tbl(0))
    krt = tbl(0)(i, 3) & tbl(0)(i, 4)
    c(i, 1) = b1(d(krt), 1)
    c1(i, 1) = b1(d(krt), 2)
    c2(i, 1) = b1(d(krt), 3)
Next i

s2.Range("A2:G" & Rows.Count).ClearContents
s2.[A2].Resize(say, 7) = b
s2.[B2].Resize(say) = c
s2.[E2].Resize(say) = c1
s2.[G2].Resize(say) = c2
MsgBox "İşlem tamam...", vbInformation
End Sub
elinize sağlık; biraz eksiklik olmuş.
girişlerde sorun yok. hepsini ayrı olarak listeliyor. çıkışlarda sorun oluyor. aynı vade ve tutardaki değerlerin ilk değerini tek çıkış olarak diğerlerine yazıyor. ayrıca girişi olmayan çıkışları da listelemiyor. eğer daha pratik olacaksa HAREKET SAYFASINDAKİ GİRİŞ ÇIKIŞ yazan sütuna her vade ve tutar için barkod gibi sıra numarasıda verebilirim. 0-001 gibi
 
Son düzenleme:
Geri
Üst