السلام عليكم
طيب هكذا بيكون اذا ملف MAIN في فولدر منفصل
Sub COPY_ALIDROOS()
Dim W_ALI As Workbook, WB_ALI As Workbook, N_ALI$, CH_ALI$, SH_ALI As Worksheet
Dim T%, R%
Application.ScreenUpdating = 0
'============================================
' هنا تحط مسار مجلد الملفات التي تريد جلب بياناتها
CH_ALI = "C:\ALI\"
'============================================
N_ALI = Dir(CH_ALI & "\*.xlsx")
Set W_ALI = ThisWorkbook
Do While N_ALI <> ""
Set WB_ALI = Workbooks.Open(CH_ALI & "\" & N_ALI)
For Each SH_ALI In WB_ALI.Worksheets
R = SH_ALI.Cells(Rows.Count, 1).End(xlUp).Row
W_ALI.Activate
'============================================
'(A-E-F)هنا الاعمدة المراد جلب بياناتها هيا حسب طلبك هيا
' إبتداء من السطر الثالث
Union(SH_ALI.Range("A3:A" & R), SH_ALI.Range("E3:E" & R), SH_ALI.Range("F3:F" & R)).Copy
'============================================
T = Cells(Rows.Count, 1).End(xlUp).Row + 1
ThisWorkbook.Worksheets(1).Range("A" & T).PasteSpecial xlPasteValues
Next SH_ALI
N_ALI = Dir
WB_ALI.Close 0
Loop
End Sub
وهكذا بيكون اذا ملف MAIN في نفس الفولدر
Sub COPY_ALIDROOS()
Dim W_ALI As Workbook, WB_ALI As Workbook, N_ALI$, CH_ALI$, SH_ALI As Worksheet
Dim T%, R%
Application.ScreenUpdating = 0
CH_ALI = ThisWorkbook.Path
N_ALI = Dir(CH_ALI & "\*.xlsx")
Set W_ALI = ThisWorkbook
Do While N_ALI <> ""
Set WB_ALI = Workbooks.Open(CH_ALI & "\" & N_ALI)
For Each SH_ALI In WB_ALI.Worksheets
R = SH_ALI.Cells(Rows.Count, 1).End(xlUp).Row
W_ALI.Activate
If SH_ALI.UsedRange.SpecialCells(11).Row = 1 Then GoTo 1
'============================================
'(A-E-F)هنا الاعمدة المراد جلب بياناتها هيا حسب طلبك هيا
' إبتداء من السطر الثالث
Union(SH_ALI.Range("A3:A" & R), SH_ALI.Range("E3:E" & R), SH_ALI.Range("F3:F" & R)).Copy
'============================================
T = Cells(Rows.Count, 1).End(xlUp).Row + 1
ThisWorkbook.Worksheets(1).Range("A" & T).PasteSpecial xlPasteValues
1 Next SH_ALI
N_ALI = Dir
WB_ALI.Close 0
Loop
End Sub
جرب الكود وابلغني بالتيجة
ولاتنسى تحط المسار الصحيح في حال كان الفولدر منفصل لملف MAIN
والسلام عليكم