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

المساعدة فى تنفيذ كود لجلب بيانات من عدة ملفات مفتوحة


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

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


السادة الأفاضل

ارجو المساعدة فى تنفيذ كود يقوم بترحيل بيانات من الملفات المفتوحة الى ملف "بيانات مجمعة" كالأتى:-

1-يتم ترحيل البيانات من جميع الملفات المفتوحة من شيت "Worksheet" بكل ملف الى ملف "بيانات مجمعة" شيت "بيانات"من بداية البيانات فى اول سطر الى نهايتها فى اخر سطر

2- يتم ترك سطر بين كل بيان و البيان الأخر

3- يتم سحب البيانات من جميع الشيتات المفتوحة بنفس الطريقة

4- عدد الملفات المفتوحة قد يتجاوز ال 100 ملف

5- اسماء الشيتات المفتوحة غير محددة و قد تتغير فى كل مرة

مرفق امثلة للملفات و ملف "بيانات مجمعة" المطلوب الترحيل الية و بة البيانات بعد الترحيل بالطريقة المطلوبة للأيضاح

 

و شكرا جزيلا لتعاونكم

2021-06-20 (1).xlsx 2021-06-20 (3).xlsx 2021-06-20.xlsx بيانات مجمعة.xlsx

تم تعديل بواسطه طارق_طلعت
رابط هذا التعليق
شارك

  • أفضل إجابة

جرب  هذا  الماكرو 

عليك  بوضع  ملفاتك  في  مجلد  محدد  

يقوم  الماكرو  بفتح  المستعرض   حدد  المجلد  الذي  به  الملفات  ثم  قم  يتحديد  كامل  الملفات  وسيقوم  بدمجها  في  ملفك  مع  مراعاة  اسم  الورقة  بالانجليزي  في  ملف  التجميع Worksheet

 

Sub Consolidation()

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


With WS

    
    If Len(.Range("a2")) Then
        Intersect(.UsedRange, .UsedRange.Offset(0)).Clear 'removes old data
    End If

End With

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 + 2
        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:F" & 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
رابط هذا التعليق
شارك

قم بادراج موديول في  الملف  التجميعي  وضع  الكود به   

عندما   تقوم  بتحديد  الملفات من  المستعرض  ثم  الضغط  على  فتح  سيقوم  بسحب  البيانات منها   دون  فتح  الملفات  

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

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