استاذى الفاضل سليم
اسال الله ان يجزيك خيرا على الابداعات التى تقدمها
اكاد افهم اليه الكود باستثناء طريقة الجمع فى الكود
ما افهمه من الكود الاعلان عن المتغيرات
Dim Rg_A As Range
Dim Rg_D As Range, Rg_G As Range
Dim a%, d%, g%, X%
Dim St1$, St2$
Dim Dic As Object
ثم مسح مكان استدعاء البيانات
Range("k3").CurrentRegion.ClearContents
ثم تعيين المتغيرات وتعريفها
Set Rg_A = Range("A3", Range("A2").End(4))
Set Rg_D = Range("D3", Range("D2").End(4))
Set Rg_G = Range("G3", Range("G2").End(4))
a = Rg_A.Rows.Count: d = Rg_D.Rows.Count
g = Rg_G.Rows.Count
St1 = "All Products": St2 = "All Volume"
Set Dic = CreateObject("Scripting.dictionary")
ثم عمل ثلاث حلقات تكراريه تبدا من الصف الثالث الى عدد صفوف الرنج المشار اليه بالحلقه
For X = 3 To a - 2
If Not Dic.exists(Cells(X, 1).Value) Then
Dic(Cells(X, 1).Value) = Cells(X, 2)
Else
Dic(Cells(X, 1).Value) = Dic(Cells(X, 1).Value) + Cells(X, 2)
End If
Next
ما افهمه من الحلقه التكراريه اذا لم تجد عنصر الكائن اى عدم تكراره فى الرنج فانه يساوى cells(x,2 والا اللى انا فهمه اجمع العنصر بالرقم المجاور
ارجو شرح هذه الجزئية
اشكرك
الباقى واضح