Hi,
I have a simple SUMIFS VBA code that i use rather than a sumifs function. Code works however it runs extremely slow. Anyone has suggestions to optimize and speed up run time?
I have a simple SUMIFS VBA code that i use rather than a sumifs function. Code works however it runs extremely slow. Anyone has suggestions to optimize and speed up run time?
Code:
Sub SUMIFSLWFORMBRAND()
Const TOTALSROW = 61
Dim i, x, y, z, t, f As Long
With Sheets("HDD")
.Cells(TOTALSROW, 7) = WorksheetFunction.SumIf(Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW, 5), Sheets("Source").Range("av:av"))
.Cells(TOTALSROW, 8) = WorksheetFunction.SumIf(Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW, 5), Sheets("Source").Range("aw:aw"))
For x = 2 To 22
.Cells(TOTALSROW + x, 7) = WorksheetFunction.SumIfs(Sheets("Source").Range("av:av"), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + x, 4), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + x, 5), Sheets("Source").Range("CG:CG"), .Cells(TOTALSROW + x, 6))
.Cells(TOTALSROW + x, 8) = WorksheetFunction.SumIfs(Sheets("Source").Range("aw:aw"), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + x, 4), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + x, 5), Sheets("Source").Range("CG:CG"), .Cells(TOTALSROW + x, 6))
For i = 1 To 1
.Cells(TOTALSROW + i, 7) = WorksheetFunction.SumIfs(Sheets("Source").Range("av:av"), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + i, 5), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + i, 4))
.Cells(TOTALSROW + i, 8) = WorksheetFunction.SumIfs(Sheets("Source").Range("aw:aw"), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + i, 5), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + i, 4))
For y = 24 To 24
.Cells(TOTALSROW + y, 7) = WorksheetFunction.SumIfs(Sheets("Source").Range("av:av"), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + y, 5), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + y, 4))
.Cells(TOTALSROW + y, 8) = WorksheetFunction.SumIfs(Sheets("Source").Range("aw:aw"), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + y, 5), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + y, 4))
For z = 25 To 37
.Cells(TOTALSROW + z, 7) = WorksheetFunction.SumIfs(Sheets("Source").Range("av:av"), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + z, 4), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + z, 5), Sheets("Source").Range("CG:CG"), .Cells(TOTALSROW + z, 6))
.Cells(TOTALSROW + z, 8) = WorksheetFunction.SumIfs(Sheets("Source").Range("aw:aw"), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + z, 4), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + z, 5), Sheets("Source").Range("CG:CG"), .Cells(TOTALSROW + z, 6))
For t = 38 To 38
.Cells(TOTALSROW + t, 7) = WorksheetFunction.SumIfs(Sheets("Source").Range("av:av"), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + t, 5), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + t, 4))
.Cells(TOTALSROW + t, 8) = WorksheetFunction.SumIfs(Sheets("Source").Range("aw:aw"), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + t, 5), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + t, 4))
For f = 39 To 48
.Cells(TOTALSROW + f, 7) = WorksheetFunction.SumIfs(Sheets("Source").Range("av:av"), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + f, 4), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + f, 5), Sheets("Source").Range("CG:CG"), .Cells(TOTALSROW + f, 6))
.Cells(TOTALSROW + f, 8) = WorksheetFunction.SumIfs(Sheets("Source").Range("aw:aw"), Sheets("Source").Range("CC:CC"), .Cells(TOTALSROW + f, 4), Sheets("Source").Range("cb:cb"), .Cells(TOTALSROW + f, 5), Sheets("Source").Range("CG:CG"), .Cells(TOTALSROW + f, 6))
Next f
Next t
Next z
Next y
Next i
Next x
End With
End Sub