Tablolarda Alt Toplam Aldırma Vba İle

1 2 3 4 5 6 7
25/02/2021, 13:59

ercansahiner61

TABLO OLARAK HAZIRLANMIŞTIR.
"Tablodaki veriler eksilip artabilmektedir. Bu nedenle; örnek verecek olursak;
veriler
2 sırada bittiğinde Alacak tutarının ve paylaşım tutarının ALT T OPLAMI,
7 sırada bittiğinde Alacak tutarının ve paylaşım tutarının ALT T OPLAMI, GİBİ
VERİLER EKSİLİP ÇOĞALABİLİR.
alt toplamı alıyor ancak ""D6"" hücresindeki alacaklar toplamına ALTTOPLAM da dahil edildiğinde  hesaplama yanlış oluyor
Garame Tablo 2 de alt toplamı elle yaptırdım yeni bir veri gibi görmeden alta alıyor. ancak paylaşım tablosunda Vba kodu ile yapmaya çalıştım sadece son veri altına toplamıı alıyor bunuda "D2" hücresindeki toplama eklediğinde yanlış oluyor. 2 katına çıkıyor.
Birde alacaklar toplamını tablo altındaki altoplam dahil edilmeden nasıl aldırabiliriz. değişken olduğu için Vba oluşturamıyorum.


"
25/02/2021, 14:30

atoykan

Konunuzu örnek uygulamalar altında da aynen açmışsınız. Oradakini sildim buradan devam edin, konu açarken daha dikkatli olalım lütfen.
26/02/2021, 13:03

ercansahiner61

Değerli arkadailar konı ile ilgilecek biri yokmu
26/02/2021, 17:45

boolean_

Tablonuzun B kolonuna sıra no verdiğinizi düşünerek toplamı B kolonundaki hücre dolu ise topla şeklinde yapılabilir.
örnek olarak kudunuzda toplam = CDbl(WorksheetFunction.SumIf([b9:b100], ">0", [alan])) şeklinde bir düzenleme yapabilirsiniz.
26/02/2021, 22:18

berduş

D6ya aşağıdaki kodu yazıp dener misiniz?
=SUM(Tablo81731[Alacak Tutarı])
27/02/2021, 14:49

feraz

Merhaba.
İlgili kodu alttaki ile değiştiriniz.Sadece kodunuzdaki
Kod:
satır = sh.Range("B" & Rows.Count).End(3).Row
yeri değiştirdim.

Sub alttoplamlar()
Dim sh As Worksheet, satýr As Long, sutun As Long, _
    toplam As Double, alan As Range, toplamsatýrý As Long

Set sh = Sheets("Paylaþým")

satýr = sh.ListObjects("Tablo81731").Range.Columns(1).Cells.Find("*", SearchOrder:=xlByRows, LookIn:=xlValues, SearchDirection:=xlPrevious).Row
toplamsatýrý = satýr + 1
sutun = 6
For d = 4 To 5 '(d, e sütunlarý)
    Set alan = sh.Range(sh.Cells(9, d), sh.Cells(satýr, d))
    toplam = CDbl(WorksheetFunction.Sum(alan))
    sh.Cells(toplamsatýrý, d).Value = toplam
Next d
MsgBox "Ýþlem tamamlandý", vbInformation, "antonio"
End Sub
1 2 3 4 5 6 7