اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

الردود الموصى بها

قام بنشر

لحسن كتابة الكود ونسخه ولصقه تم العمل على
1- تغيير اسماء الملفات الى  (ALl_SUM /  تجميع   ) و  (Main /الرئيسي)

2- يجب ان يكون الملفان في نفس الــ  Folder
3- تغيير اسماء الضفحات الى Page2   Page1 .....    بدل 1/2/3/4
الكود 

Sub Get_From_Other_WB()
Dim mPath$
Dim F_Name, TS$, m%
Dim arr(), itm
arr = Array("Page1", "Page2", "Page3", "Page4")

m = 4

If UCase(ActiveSheet.Name) <> "TOTAL" Then GoTo BAY_BAY_YA_HILWEEN
With Sheets("TOTAL")
.Cells(4, "D").Resize(UBound(arr) + 1).ClearContents
  mPath = ThisWorkbook.Path & "\"

 For Each itm In arr
    F_Name = mPath & "[Main.xlsx]"
    F_Name = "='" & F_Name & itm & "'!B2"
    .Cells(m, "D").Formula = F_Name
    m = m + 1
    F_Name = ""
 Next
 .Cells(4, "D").Resize(UBound(arr) + 1).Value = _
 .Cells(4, "D").Resize(UBound(arr) + 1).Value
End With
BAY_BAY_YA_HILWEEN:

End Sub

الملفان مرفقان ضمن هذا الـــ Folder

ALl_SUM.xlsm

Main.xlsx

  • Like 1
قام بنشر

استاد سليم 

عمل رائع ولكن ادخال اسماء الشيتات في المتغير arr مرهق شيئا ما 

هل فيه طريقة اخرى لانه فيملف العمل الرئيسي 298 شيت ؟

  • تمت الإجابة
قام بنشر

تم التعديل بحيث يقوم الماكرو باضافة الشيتات الى الــ   Array   اوتوماتيكياً

Sub Get_From_Other_WB()
Dim mPath$, OtherWB As Workbook
Dim F_Name, TS$, m%
Dim arr(), itm, x
'arr = Array("Page1", "Page2", "Page3", "Page4")
Application.ScreenUpdating = False
m = 4
mPath = ThisWorkbook.Path & "\"
mPath = mPath & "Main.xlsx"

Set OtherWB = Workbooks.Open(mPath)
 For i = 1 To OtherWB.Sheets.Count
  ReDim Preserve arr(i - 1)
  arr(i - 1) = OtherWB.Sheets(i).Name
 Next
 OtherWB.Close
If UCase(ActiveSheet.Name) <> "TOTAL" Then GoTo BAY_BAY_YA_HILWEEN
With Sheets("TOTAL")
.Cells(4, "D").Resize(UBound(arr) + 1).ClearContents
  mPath = ThisWorkbook.Path & "\"

 For Each itm In arr
    F_Name = mPath & "[Main.xlsx]"
    F_Name = "='" & F_Name & itm & "'!B2"
    .Cells(m, "D").Formula = F_Name
    m = m + 1
    F_Name = ""
 Next
 .Cells(4, "D").Resize(UBound(arr) + 1).Value = _
 .Cells(4, "D").Resize(UBound(arr) + 1).Value
End With
BAY_BAY_YA_HILWEEN:
Application.ScreenUpdating = True
End Sub

 

ALl_SUM_1.xlsm Main.xlsx

  • Like 1

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information