- Katılım
- 3 Mart 2009
- Mesajlar
- 519
- Excel Vers. ve Dili
- excel 2003 tr
Sub Topla()
Dim S1 As Worksheet, Dizim(), Veri(), Kriter As Variant
Dim x As Long, Satir As Long, Zaman As Double, Bakiye, Bakiye2 As Double
Zaman = Timer
With Application
.ScreenUpdating = False
.Calculation = xlCalculationManual
.EnableEvents = False
End With
Set S1 = Sheets("ASayfa")
Satir = S1.Cells(S1.Rows.Count, 1).End(3).Row
S1.Range("M11:M" & Satir + 30).ClearContents
Veri = S1.Range("A11" & Satir).Value
Kriter = S1.Range("D1").Value
Kriter =S1.Range("A99" ).Value
Bakiye = 0
ReDim Dizim(1 To UBound(Veri, 1), 1 To 16)
For x = 1 To UBound(Veri, 1)
ReDim Preserve Dizim(1 To UBound(Veri, 1), 1 To 16)
If Veri(x, 1) = Kriter Then
Dizim(x, 1) = Bakiye + Veri(x, 11) - Veri(x, 12)
Bakiye = Dizim(x, 1)
End If
Next
S1.Range("M11:M" & UBound(Dizim) + 10) = Dizim
Sheets("PCari").Range("A11" & UBound(Dizim) + 10) = Dizim
With Application
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
.EnableEvents = True
End With
Set S1 = Nothing
'MsgBox "İşleminiz tamamlanmıştır." & Chr(10) & Chr(10) & _
"İşlem süresi ; " & Format(Timer - Zaman, "0.00000"), vbInformation
End Sub
Korhan Beyin 2016 yılında yayınladığı bu koda ilave olarak "Kriter" sayısı artarsa örnek 8 kriterli bir durum olursa "Kriter =S1.Range("A9
