• DİKKAT

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

Ana hesap kodlarının diğer sayfalarda gösterilmesi

1903emre34@gmail.com

Altın Üye
Katılım
29 Mayıs 2016
Mesajlar
945
Excel Vers. ve Dili
Microsoft Excel 2013 Türkçe
Merhaba,

Ana hesap (Ara toplam 1) sağında yer alan hesap kodlarını karşısındaki tutaları, pozitif tutar ise sayfa2'de borç bakiyesinin altına ve negatif tutar ise alacak bakiyesinin altında yerleştirmek için kod oluşturabiliriz.
 

Ekli dosyalar

D6 için aşağıdaki formülü:

=EĞER(DÜŞEYARA("Ara toplam "&"*"&C6;Sayfa1!$A$1:$J$172;10;0)>0;DÜŞEYARA("Ara toplam "&"*"&C6;Sayfa1!$A$1:$J$172;10;0);"")

E6 için aşağıdaki formülü kullanabilirsiniz:

=EĞER(DÜŞEYARA("Ara toplam "&"*"&C6;Sayfa1!$A$1:$J$172;10;0)<0;DÜŞEYARA("Ara toplam "&"*"&C6;Sayfa1!$A$1:$J$172;10;0)*(-1);"")

Eğer tüm tablo makroyla oluşturulsun istiyorsanız aşağıdaki makroyu deneyiniz:

PHP:
Sub aratoplamlar()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
son1 = s1.Cells(Rows.Count, "A").End(3).Row
For i = 3 To son1
    If Left(s1.Cells(i, "A"), 10) = "Ara toplam" Then
        eski = WorksheetFunction.Max(6, s2.Cells(Rows.Count, "C").End(3).Row)
        If WorksheetFunction.CountIf(s2.Range("C6:C" & eski), Right(s1.Cells(i, "A"), 3)) > 0 Then
            sat = WorksheetFunction.Match(Right(s1.Cells(i, "A"), 3) * 1, s2.Range("C6:C" & eski), 0) + 5
        Else
            sat = son1 + 1
            s2.Cells(sat, "C") = Right(s1.Cells(i, "A"), 3)
        End If
        If s1.Cells(i, "J") > 0 Then
            s2.Cells(sat, "D") = s1.Cells(i, "J")
        Else
            s2.Cells(sat, "E") = s1.Cells(i, "J") * (-1)
        End If
    End If
Next
End Sub
 
İlginiz için teşekkürler, makro yoluyla tercih ettiğim zaman çalıştırdığımda sayfa2 veriler gelmiyor.
 

Ekli dosyalar

Kodda

sat = son1+1 kısmı sat = eski+1 olmalıydı, onu atlamışım.

Ancak makro aslında çalışıyor, çünkü son paylaştığınız dosyada Sayfa2'de 172. satırda veri olduğundan benim hatamla bu satırdaki veri birleşip, kodun çalışmıyormuş gibi görünmesine neden oluyor. Kodun son hali aşağıdaki gibidir:

PHP:
Sub aratoplamlar()
Set s1 = Sheets("Sayfa1")
Set s2 = Sheets("Sayfa2")
son1 = s1.Cells(Rows.Count, "A").End(3).Row
For i = 3 To son1
    If Left(s1.Cells(i, "A"), 10) = "Ara toplam" Then
        eski = WorksheetFunction.Max(6, s2.Cells(Rows.Count, "C").End(3).Row)
        If WorksheetFunction.CountIf(s2.Range("C6:C" & eski), Right(s1.Cells(i, "A"), 3)) > 0 Then
            sat = WorksheetFunction.Match(Right(s1.Cells(i, "A"), 3) * 1, s2.Range("C6:C" & eski), 0) + 5
        Else
            sat = eski + 1
            If s2.[C6] = "" Then sat = 6
            s2.Cells(sat, "C") = Right(s1.Cells(i, "A"), 3)
        End If
        If s1.Cells(i, "J") > 0 Then
            s2.Cells(sat, "D") = s1.Cells(i, "J")
        ElseIf s1.Cells(i, "J") < 0 Then
            s2.Cells(sat, "E") = s1.Cells(i, "J") * (-1)
        End If
    End If
Next
End Sub
 
Geri
Üst