ikikan
Altın Üye
- Katılım
- 3 Mart 2009
- Mesajlar
- 519
- Excel Vers. ve Dili
- excel 2003 tr
- Altın Üyelik Bitiş Tarihi
- 12.02.2026
Arkadaşlar makro koşula göre kümülatif toplam yapıyor fakat
"ws1.Range("L13:L" & UBound(Dizim) + 12) = Dizim" sonucunda bakiyeleri yukarı yuvarlıyor
örnek: 1.200,80 bakiyeyi 1.201,00 olarak alıyor bunu nasıl düzelte biliriz?
"ws1.Range("L13:L" & UBound(Dizim) + 12) = Dizim" sonucunda bakiyeleri yukarı yuvarlıyor
örnek: 1.200,80 bakiyeyi 1.201,00 olarak alıyor bunu nasıl düzelte biliriz?
Kod:
Sub ToplaBakiye_27_11_2021()
Dim x As Long, Bakiye As Long, Skolon As Long
Dim Dizim() As Variant, Veri() As Variant, Kriter As Variant
Dim ws1 As Worksheet: Set ws1 = ActiveSheet
Dim myTable As ListObject: Set myTable = ws1.ListObjects("CARİ")
Dim Son
Skolon = myTable.ListColumns.Count
Veri = Range("CARİ[[FU_1]:[ALC_1]]").Value
Kriter = ws1.[C1]
With Application
.ScreenUpdating = False: .Calculation = xlCalculationManual: .EnableEvents = False: .DisplayAlerts = False
End With
Range("CARİ[BKY_1]").ClearContents
If Kriter = "Tüm Seçim" Or Kriter = "Çoklu Seçim" Or Kriter = "Çoklu Filitre" Then GoTo Son
myTable.AutoFilter.ShowAllData
ReDim Dizim(1 To UBound(Veri, 1), 1 To 1)
Bakiye = 0
For x = 1 To UBound(Veri, 1)
ReDim Preserve Dizim(1 To UBound(Veri, 1), 1 To Skolon)
If Veri(x, 1) = Kriter Then
Dizim(x, 1) = Bakiye + (Veri(x, 10) - Veri(x, 11))
Bakiye = Dizim(x, 1)
End If
Next x
ws1.Range("L13:L" & UBound(Dizim) + 12) = Dizim
myTable.Range.AutoFilter 1, Kriter
Son:
With Application
.ScreenUpdating = True: .Calculation = xlCalculationAutomatic: .EnableEvents = True: .DisplayAlerts = True
End With
Bakiye = Empty
Set ws1 = Nothing
Set myTable = Nothing
End Sub