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

طريقة دمج عدة ملفات إكسل داخل فولدر لتكون في ملف إكسل واحد وتجميع البيانات


MrSeen
إذهب إلى أفضل إجابة Solved by عبدالفتاح في بي اكسيل,

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

السلام عليكم ورحمة الله وبركاتة

كل عام والجميع بالف صحة وسلامة , عيد سعيد للجميع

لدي عدد 97 ملف إكسل منفصل داخل فولدر , هذه الملفات عبارة عن بيانات للاصناف وكمياتها الواردة للمستودعات لدي , بعض هذه الاصناف متكرره في بعض الملفات

أرغب بتجميع تلك الملفات و الاصناف وكميتها بحيث تكون في ملف واحد , بحيث يكون في ملف التجميع رقم الصنف وامامة المجموع الكلي للكميات الواردة 

 

يوجد مثال في المرفقات

 

اتمني ان اكون وفقت في ايصال الاستفسار بشكل دقيق 

 

شاكر لكم مقدما

 

2020-08-02_020947.png

1.xlsx 2.xlsx 3.xlsx 4.xlsx TOTAL.xlsx

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

تسلم الايادي استاذ ابو الحسن

 

- الملف الي اضفته يقوم بتجميع كل ملف إكسل في ملف واحد ولكن كل ملف يقوم بوضعة في شيت مستقل

- الذي ابحث عنه هو ان يقوم بتجميعهم بملف واحد وشيت واحد 

 

- لقت قمت بتجميع الملفات كلها في ملف وشي واحد يدويا لقد اخذت مني جهد ووقت ولكني مضطر لعمل ذالك

 

- السؤال الان يوجد في الشيت اصناف متكرره بأعداد مختلفه, كيف اقوم بدمج هذه الاصناف بحيث يكون صنف واحد وامامه المجموع لكلي ؟

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

  • أفضل إجابة

جرب هذا  الكود  لعله  يفي  بالغرض 

Sub Consolidation()

Dim CurrentBook As Workbook
Dim WS As Worksheet
Set WS = ThisWorkbook.Sheets("sheet1")
Dim IndvFiles As FileDialog
Dim FileIdx As Long
Dim i As Integer, x As Integer

Set IndvFiles = Application.FileDialog(msoFileDialogOpen)
With IndvFiles
    .AllowMultiSelect = True
    .Title = "Multi-select target data files:"
    .ButtonName = ""
    .Filters.Clear
    .Filters.Add ".xlsx files", "*.xlsx"
    .Show
End With

Application.DisplayAlerts = False
Application.ScreenUpdating = False

For FileIdx = 1 To IndvFiles.SelectedItems.Count
    Set CurrentBook = Workbooks.Open(IndvFiles.SelectedItems(FileIdx))
    For Each Sheet In CurrentBook.Sheets
        Dim LRow1 As Long
        LRow1 = WS.Range("A" & WS.Rows.Count).End(xlUp).Row
        Dim LRow2 As Long
        LRow2 = CurrentBook.ActiveSheet.Range("A" & CurrentBook.ActiveSheet.Rows.Count).End(xlUp).Row

        Dim ImportRange As Range
        Set ImportRange = CurrentBook.ActiveSheet.Range("A2:d" & LRow2)

        ImportRange.Copy
        WS.Range("A" & LRow1 + 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Next
    CurrentBook.Close False
Next FileIdx

Application.DisplayAlerts = True
Application.ScreenUpdating = True


End Sub

 

  • Like 2
  • Thanks 2
رابط هذا التعليق
شارك

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