ماشاء الله تبارك الله عليك شغل جبار ياأستاذ
بصراحة بديت اشتغل عليه واعمل تست بس مش عارف اكمل (أبي أغير في الأعمدة اللي اسحبهم معاي أو أضيف صفحات زيادة لعملاء جدد) مش عارف بالضبط وين المفروض أعدل .. ممكن تشرح لي وين بالضبط أعدل على الكود ؟؟؟
Option Explicit
Sub get_data()
Application.ScreenUpdating = False
Dim S As Worksheet
Dim Cus As Worksheet
Dim m%: m = 3
Dim R%
Dim ar_sh(1 To 3)
'ÇÖÝ Çáì åÐå ÇáãÕÝæÝÉ ÇáÕÝÍÇÊ ÇáÊí áÇ ÊÑíÏ Çä íÊÚÇØì ãÚåÇ ÇáãÇßÑæ
ar_sh(1) = "Summary": ar_sh(2) = "Customers": ar_sh(3) = "Products"
Set S = Sheets("Summary")
With S
.Cells.Clear
For Each Cus In Sheets
If IsError(Application.Match(Cus.Name, ar_sh, 0)) Then
R = Cus.Range("B9").CurrentRegion.Rows.Count
Cus.Range("B9").CurrentRegion.Copy .Cells(m, 1)
With .Cells(m - 1, 1)
.Value = Cus.Name
.Interior.ColorIndex = 6
End With
m = m + R + 2
End If
Next Cus
.Range("C:C,D:D,H:H").EntireColumn.Delete
End With
End Sub
=======================================
Option Explicit
Sub Fil_data()
Application.ScreenUpdating = False
Dim My_sh As Worksheet
Dim Cus As Worksheet
Dim m%: m = 2
Dim col%
Dim ar_sh(1 To 3)
'ÇÖÝ Çáì åÐå ÇáãÕÝæÝÉ ÇáÕÝÍÇÊ ÇáÊí áÇ ÊÑíÏ Çä íÊÚÇØì ãÚåÇ ÇáãÇßÑæ
ar_sh(1) = "Summary": ar_sh(2) = "Customers": ar_sh(3) = "Products"
Set My_sh = Sheets("Customers")
With My_sh
.Range("a1").CurrentRegion.Offset(1).ClearContents
For Each Cus In Sheets
If IsError(Application.Match(Cus.Name, ar_sh, 0)) Then
col = Cus.Cells(6, Columns.Count).End(1).Column
.Cells(m, 1).Resize(, col).Value = _
Cus.Cells(6, 2).Resize(, col).Value
m = m + 1
End If
Next Cus
' .Range("C:C,D:D,H:H").EntireColumn.Delete
End With
End Sub
وبالنسبة لشيت ال products ماعملنا عليها حاجة .. عاوز يجيب لي جميع ال ال products في جميع شيت اللي باسم العملاء ويعطيني المجموع حقهم (sum لكل product)