açık hesapların tarihe göre toplamı

Katılım
3 Mayıs 2008
Mesajlar
53
Excel Vers. ve Dili
xp
merhaba;
ilk sayfaya tarih toplam satış ve tahsilat bölmesi oluşturup 365 gün tarihini sabit olarak atıyorum. diğer sayfalara müşterinin alış tarih ve miktarı le 4 sütun tarih ve ödeme bölümü şeklinde böldüm. müşterilerin alış ve ödeme yaptığı tarihleri attığımda, birinci sayfadaki sabit tarihlerin karşısına diğer sayfalardaki aynı tarihlerdeki toplamı alsın istiyorum aşağıdaki gibi formül yazdım ama hata veriyor. yardımcı olursanız memnun olurum.
satış için
=EĞER(('Sayfa2:[Sayfa76]Sayfa76'!A:A=Sayfa1!A2);TOPLA(Sayfa2:Sayfa76!B:B))
ödemeler için
=EĞER(('C:\Documents and Settings\ROTA\Desktop\Sayfa2:[Sayfa76]Sayfa76'!E:E;'C:\Documents and Settings\ROTA\Desktop\Sayfa2:[Sayfa76]Sayfa76'!G:G;'C:\Documents and Settings\ROTA\Desktop\Sayfa2:[Sayfa76]Sayfa76'!I:I=Sayfa1!C2);TOPLA(Sayfa2:Sayfa76!D:D;Sayfa2:Sayfa76!F:F;Sayfa2:Sayfa76!H:H;Sayfa2:Sayfa76!J:J))
 
Katılım
13 Mart 2006
Mesajlar
142
Excel Vers. ve Dili
2007 ve sonrası (TR)
merhaba;
modül üzerinden aşağıdaki kodu çalıştırınız.
Kod:
Sub düzenle()
Dim SAlan As Range
Dim AnaAlan As Range
Dim Tar, Tar1 As Date
Dim anaveri()
Sheets("Sayfa1").Select
Range("b2:b32").ClearContents
Range("d2:d32").ClearContents
S1Sonsat = Sheets("Sayfa1").Cells(65536, "A").End(3).Row
Set AnaAlan = Sheets("Sayfa1").Range("a2:a" & S1Sonsat)

ReDim anaveri(AnaAlan.Cells.Count)

For anaverial = 1 To AnaAlan.Cells.Count
anaveri(anaverial) = AnaAlan.Cells(anaverial).Value
Next anaverial

For w = 2 To ActiveWorkbook.Sheets.Count
        For i = 1 To 5
10:
If i > 5 Then Exit For
        If i = 1 Then Set SAlan = Worksheets(w).Range("a3:a34"): kanat = "sol"
        If i = 2 Then Set SAlan = Worksheets(w).Range("c3:c34"): kanat = "sağ"
        If i = 3 Then Set SAlan = Worksheets(w).Range("e3:e34"): kanat = "sağ"
        If i = 4 Then Set SAlan = Worksheets(w).Range("g3:g34"): kanat = "sağ"
        If i = 5 Then Set SAlan = Worksheets(w).Range("ı3:ı34"): kanat = "sağ"
        
        sonsat = Worksheets(w).Cells(65536, SAlan.Column).End(3).Row - 2
        If sonsat <= 0 Then
        i = i + 1
        GoTo 10
        End If
            For j = 1 To sonsat
            Tar = SAlan.Cells(j).Value
            
            
                    For x = 1 To AnaAlan.Cells.Count
                    Tar1 = AnaAlan.Cells(x).Value
                    
                    
                        If Tar = Tar1 Then
                            
                            If Not IsNumeric(SAlan.Cells(j).Offset(0, 1).Value) Then
                            SName = Worksheets(w).Name
                            SAdres = SAlan.Cells(j).Offset(0, 1).Address
                            MsgBox SName & " içindeki " & SAdres & " hücresi hatalı yazılmış." & Chr(10) & _
                            "Düzelttikten sonra tekrar deneyiniz."
                            Exit Sub
                            End If
                            
                            
                            If kanat = "sol" Then
                            AnaAlan.Cells(x).Offset(0, 1).Value = AnaAlan.Cells(x).Offset(0, 1).Value + SAlan.Cells(j).Offset(0, 1).Value
                            End If
                            
                            If kanat = "sağ" Then
                            AnaAlan.Cells(x).Offset(0, 3).Value = AnaAlan.Cells(x).Offset(0, 3).Value + SAlan.Cells(j).Offset(0, 1).Value
                            End If
                            Exit For
                        End If
                    
                    Next x
            Next j
        Next i
Next w

MsgBox "Hesap Özeti Alma İşlemi Tamamlandı."

End Sub
 
Son düzenleme:
Katılım
3 Mayıs 2008
Mesajlar
53
Excel Vers. ve Dili
xp
bizler için zaman harcadınız. helal edin çok teşekkürler elinize sağlık. makrolar la ilgili bilgim pek olmadığı için soruyorum her seferinde makroyu çalıştırmak mı gerekiyor yoksa otomatik çalıştırma imkanımız varmı? klavyeden kısayol atadım her veri girişinden sonra öyle çalıştırıyorum.
 
Son düzenleme:

Ömer

Moderatör
Yönetici
Katılım
18 Ağustos 2007
Mesajlar
22,184
Excel Vers. ve Dili
Microsoft 365 Tr
Ofis 2016 Tr
Merhaba,

Alternatif olarak fonksiyonlarla çözüm isterseniz aşağıdaki işlemleri dosyanıza uygulayınız.

---------------------------------------------------------------------------------

Sayfa1 L sütununa sayfa adlarını Sayfa1 hariç yazalım. Sayfa adları belli bir standartta gittiği için bu işlemi formülle yazdırabiliriz.

Sayfa1 L2 hücresine;

Kod:
="Sayfa"&SATIRSAY($L$2:L2)+1
yazarak 76. satıra kadar formülü kopyalayın. Eğer sayfa sayısı artarsa kopyalamayıda artırırsınız.

---------------------------------------------------------------------------------

Daha sonra menü den;

Ekle / Ad / Tanımlamaya girerek, "Çalışma Kitabındaki Adlar" bölümüne;

sayfa

yazın ve "Başvuru Yerine";

Kod:
=KAYDIR(Sayfa1!$L$2;;;BAĞ_DEĞ_DOLU_SAY(Sayfa1!$L:$L)-1)
formülü yazarak tamam buton ile işlemi bitirin.

---------------------------------------------------------------------------------

Bu işlemlerde sonra hesaplamalara geçebiliriz.

Sayfa1 B2 hücresine;

Kod:
=TOPLA.ÇARPIM(ETOPLA(DOLAYLI("'"&[B]sayfa[/B]&"'!A:A");A2;DOLAYLI("'"&[B]sayfa[/B]&"'!B:B")))
yazarak alt satırlara kopyalayınız.


---------------------------------------------------------------------------------

Sayfa1 D2 hücresine;

Kod:
=TOPLA.ÇARPIM(ETOPLA(DOLAYLI("'"&[B]sayfa[/B]&"'!C:I");C2;DOLAYLI("'"&[B]sayfa[/B]&"'!D:J")))
yazarak alt satırlara kopyalayınız.

Bu şekilde istediğiniz hesaplamalar yapılmış olacaktır.

.
 
Katılım
13 Mart 2006
Mesajlar
142
Excel Vers. ve Dili
2007 ve sonrası (TR)
bizler için zaman harcadınız. helal edin çok teşekkürler elinize sağlık. makrolar la ilgili bilgim pek olmadığı için soruyorum her seferinde makroyu çalıştırmak mı gerekiyor yoksa otomatik çalıştırma imkanımız varmı? klavyeden kısayol atadım her veri girişinden sonra öyle çalıştırıyorum.
Helâli hoş olsun.İşinize yaradığına sevindim.
Anladığım kadarıyla, müşterilerinizin alışveriş hareketlerini aylık bazlı bir tek sayfada görmek istemişsiniz.Bu sayfaya bir buton yerleştirip,bu butona mevcut makroyu bağlarsanız, ve gün bitiminde bir kez çalıştırırsanız,ilgili aya ait tüm veriler baştan sona hesaplanarak hücrelere yerleştirilir.Dolayısıyla günde bir kez çalıştırmak kâfidir bence.
 
Katılım
3 Mayıs 2008
Mesajlar
53
Excel Vers. ve Dili
xp
sayın Ömer ve excel03 Çok teşekkürler. Emeğinize sağlık. Allah yolunuzu açık etsin
 
Son düzenleme:
Üst