NADİR YILDIZ
Altın Üye
- Katılım
- 7 Ocak 2006
- Mesajlar
- 1,418
- Excel Vers. ve Dili
- 2016 Türkçe
DOSYA İndirmek/Yüklemek için ÜCRETLİ ALTIN ÜYELİK Gereklidir!
Altın Üyelik Hakkında Bilgi
Sub toplam_al()
Set dc1 = CreateObject("scripting.dictionary")
Set dc2 = CreateObject("scripting.dictionary")
Set dc3 = CreateObject("scripting.dictionary")
a = Range("L3:AJ" & Cells(Rows.Count, "L").End(3).Row).Value
For i = 1 To UBound(a)
mth = a(i, 10): dc1(mth) = dc1(mth) + a(i, 5)
kms = a(i, 1): dc2(kms) = dc2(kms) + a(i, 17)
net = a(i, 10): dc3(net) = dc3(net) + a(i, 25)
Next i
b = Range("AP3:AP" & Cells(Rows.Count, "AP").End(3).Row).Value
ReDim c(1 To UBound(b), 1 To 3)
For i = 1 To UBound(b)
krt = b(i, 1)
c(i, 1) = CDbl(dc1(krt))
c(i, 2) = CDbl(dc2(krt) * -1)
c(i, 3) = CDbl(dc3(krt))
Next i
[AQ3].Resize(UBound(b), 3) = c
MsgBox "İşlem bitti.", vbInformation
End Sub
.
Pivot Table - Özet Tabloyu kullanın daha uygun olur.
.
Sub Düğme56_Tıklat()
Dim mth As String, kms As String, net As String, krt As String
Application.Calculation = xlCalculationManual
Set dc1 = CreateObject("scripting.dictionary")
Set dc2 = CreateObject("scripting.dictionary")
Set dc3 = CreateObject("scripting.dictionary")
a = Range("L3:AJ" & Cells(Rows.Count, "L").End(3).Row).Value
For i = 1 To UBound(a)
mth = a(i, 10): dc1(mth) = dc1(mth) + a(i, 5)
kms = a(i, 1): dc2(kms) = dc2(kms) + a(i, 17)
net = a(i, 10): dc3(net) = dc3(net) + a(i, 25)
Next i
On Error Resume Next
b = Range("AP3:AP" & Cells(Rows.Count, "AP").End(3).Row).Value
ReDim c(1 To UBound(b), 1 To 4)
ReDim c1(1 To UBound(b), 1 To 3)
deg = CDbl([AT2])
For i = 1 To UBound(b)
krt = b(i, 1)
c(i, 1) = CDbl(dc1(krt))
c(i, 2) = CDbl(dc2(krt) * -1)
c(i, 3) = CDbl(dc3(krt))
If i = 1 Then
c(i, 4) = deg + c(i, 3)
Else
c(i, 4) = dc3(krt) + c(i - 1, 4)
End If
Next i
[AQ3].Resize(UBound(b), 4) = c
MsgBox "İşlem bitti.", vbInformation
'Application.Calculation = xlCalculationAutomatic
End Sub
Sub test()
Dim mth As String, kms As String, net As String, krt As String
Application.Calculation = xlCalculationManual
Set dc1 = CreateObject("scripting.dictionary")
Set dc2 = CreateObject("scripting.dictionary")
Set dc3 = CreateObject("scripting.dictionary")
a = Range("P3:AJ" & Cells(Rows.Count, "V").End(3).Row).Value
For i = 1 To UBound(a)
trh = CStr(a(i, 7))
dc1(trh) = dc1(trh) + a(i, 1)
dc2(trh) = dc2(trh) + a(i, 13)
dc3(trh) = dc3(trh) + a(i, 21)
Next i
'On Error Resume Next
b = Range("AP3:AP" & Cells(Rows.Count, "AP").End(3).Row).Value
ReDim c(1 To UBound(b), 1 To 4)
deg = CDbl([AT2])
For i = 1 To UBound(b)
krt = b(i, 1)
c(i, 1) = CDbl(dc1(krt))
c(i, 2) = CDbl(dc2(krt) * -1)
c(i, 3) = CDbl(dc3(krt))
If i = 1 Then
c(i, 4) = deg + c(i, 3)
Else
c(i, 4) = dc3(krt) + c(i - 1, 4)
End If
Next i
[AQ3].Resize(UBound(b), 4) = c
MsgBox "İşlem bitti.", vbInformation
'Application.Calculation = xlCalculationAutomatic
End Sub