اذهب الي المحتوي
أوفيسنا

كود انشاء معادلة SUM لتجميع قيم من ملف اخر


إذهب إلى أفضل إجابة Solved by سليم حاصبيا,

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

الاخوة الكرام 

حياكم الله

عندي ملفين اكسيل اريد انشاء كود لادراج معادلة تجميع قيم حسب اسم الشيت كما في النمودج بالملف المسمى "تجميع"

جزاكم الله خيرا   

الرئيسي.xlsx تجميع.xlsm

رابط هذا التعليق
شارك

لحسن كتابة الكود ونسخه ولصقه تم العمل على
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
رابط هذا التعليق
شارك

  • أفضل إجابة

تم التعديل بحيث يقوم الماكرو باضافة الشيتات الى الــ   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
رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information