أخي ياسر إنت رجل قديم ..يعني المفروض عنوان الموضوع يكون معبر عن الموضوع .
متعملهاش تاني !!!
إليك الكود التالي ...
الكود سوف يستغرق حوالي 4 أو 5 دقائق نظرا لحجم البيانات الهائلة الموجودة بالملف .. وأنصحك ألا تستخدم التنسيقات الكثيرة التي تسبب كبر حجم الملف
Sub SUMIFSVBA()
Dim Cell As Range
Dim LR As Long
Dim rngNetValue As Range
Dim rngNames As Range
Dim rngGroup As Range
Dim X As Double, Y
Dim ICol As Long
LR = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
Set rngNetValue = Sheet1.Range("F2:F" & LR)
Set rngNames = Sheet1.Range("L2:L" & LR)
Set rngGroup = Sheet1.Range("C2:C" & LR)
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
On Error Resume Next
For ICol = 5 To 122 Step 3
For Each Cell In Sheet2.Range("A6:A51")
If IsNumeric(Cell) Then
Y = Application.WorksheetFunction.Index(Rows(4), 1, Cell.Offset(, ICol - 1).Column - 1)
X = Application.WorksheetFunction.SumIfs(rngNetValue, rngNames, Cell.Offset(, 1), rngGroup, Y)
Cell.Offset(, ICol - 1).Value = X
End If
Next Cell
Next ICol
MsgBox "تم بحمد الله"
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub