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

نقل البيانات الى ملف واحد


black-eagle
إذهب إلى أفضل إجابة Solved by الـعيدروس,

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

  • أفضل إجابة
Public Sub Ali_Copy()
    Dim F, Fn, Nm, wb As Workbook
    Dim Dir_w, Chk$
    '**********************************
    ' مسار مجلد ملفات الإكسل
    Dir_w = "C:\Users\gh\Desktop\delet"
    '**********************************
    Th = ThisWorkbook.Name
    C = 1
    Set F = CreateObject("Scripting.FileSystemObject")
    Set Fn = F.GetFolder(Dir_w)
    For Each Fn In Fn.Files
    If Mid(Fn.Name, InStrRev(Fn.Name, ".") + 1) = "xls" Then
    Chk = Dir_w & Application.PathSeparator & Fn.Name
    If Wr_open(Chk) = False Then
    On Error Resume Next
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False
       Workbooks.Open Chk
    Application.ScreenUpdating = True
    Application.DisplayAlerts = True
    On Error GoTo 0
    End If
    End If
    Next Fn
    For wr = 1 To Workbooks.Count
     If Workbooks(wr).Name <> Th Then
        Workbooks(wr).Worksheets(1).Range("A2:A100").Copy
        Workbooks(Th).Activate
        Cells(1, C) = Workbooks(wr).Name
       Cells(2, C).PasteSpecial xlPasteValues
       C = C + 1
     End If
    Next
End Sub
Function Wr_open(Wn As String) As Boolean
Dim Wbook As Workbook
On Error Resume Next
 Set Wbook = Workbooks(Wn)
 Wr_open = Not Wbook Is Nothing
On Error GoTo 0
End Function
رابط هذا التعليق
شارك

عدل المسار الذي في الكود

Dir_w = "C:\Users\gh\Desktop\delet"

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

 

شاهد الشرح في المرفق لمعرفة مسار المجلد

 

 

شرح.rar

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

عدل المسار الذي في الكود

Dir_w = "C:\Users\gh\Desktop\delet"

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

 

شاهد الشرح في المرفق لمعرفة مسار المجلد

 

بارك الله أستاذ عباد

ظننت أن الكود يعمل حتى لو كانت الملفات المطلوبة مغلقة

هذا ما قصدته بكلامي .... " رابط المجلد لا يعمل "

أما الكود فهو يعمل بشكل رائع ..... 

بارك الله بك

B1.rar

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

اذهب الى السطر التالي من الكود

If Mid(Fn.Name, InStrRev(Fn.Name, ".") + 1) = "xls" Then

واستبدله بهذا

If Mid(Fn.Name, InStrRev(Fn.Name, ".") + 1) = "xlsx" Then

حسب الصورة المرفقه لديك امتداد الملفات هيا "xlsx"

 

تحياتي

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

اذهب الى السطر التالي من الكود

If Mid(Fn.Name, InStrRev(Fn.Name, ".") + 1) = "xls" Then

واستبدله بهذا

If Mid(Fn.Name, InStrRev(Fn.Name, ".") + 1) = "xlsx" Then

حسب الصورة المرفقه لديك امتداد الملفات هيا "xlsx"

 

تحياتي

الان تفعل الرابط

شكرا على المجهود الرائع

بارك الله بك

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

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