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

نسخ مجموعة ملفات مرة واحدة باسم ملف متسلسل ( معدل )


إذهب إلى أفضل إجابة Solved by طارق محمود,

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

السلام عليكم

أخي الكريم

إشرح قليلا لكي تساعد من أراد أن يشارك

 

نفرض أن بالمجلد ملفين ، "الأول" ، "الثاني" بالإضافة لملف ثالث مثلا إسمه "الكود"
 
هل المطلوب إذا فتحت ملف الكود ، يتم نسخ الأول بدلا من الثاني
أي سيحذف الثاني وينسخ نسخة من الأول بنفس إسم الثاني
رابط هذا التعليق
شارك

السلام عليكم بالضبط اخي محمود فعند فتح ملف الكود مثلا يقوم بنسخ محتوياته باسم اي ملف موجود معه في المجلد ليصبح جميع الملفات تحتوي علي نفس البيانات الموجود بملف الكود

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

اخي العزيز ان الكود المطلوب تطويره هو

Sub Copy_File()
    FileCopy "e:\Test.xls", "f:\Test.xls"
End Sub
ولكني اريد ان انسخ مجموعة ملفات مرة واحدة باسم ملف متسلسل بمعني اريد نسخ ملفات موجودة بفولدر معين الي 1 -2 -3 وهكذا علي ان تشمل المحتويات بيانات الملف الرئيس tast

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

استاذ طارق وجدت لسيادتك كود يتعامل مع 100 شيت المطلوب نفس الكود ولكن يتعامل مع الملفات اي يقوم بنسخ الملف الرئيسي علي باقي الملفات ويلغي محتويات تلك الملفات

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

السلام عليكم

أخي العزيز

أنت أوحيت لي بالحل في مشاركتك السابقة

تفضل الملف وبه الكود والشرح

سيعمل الكود علي الملفات التي امتدادها .xls فقط

وطبعا يمكن تعديله ليشمل كافة امتدادات الإكسل

الكود هو

Sub Copy_to_all()
On Error Resume Next
Application.DisplayAlerts = False
Application.ScreenUpdating = False


  pt = ActiveWorkbook.Path & "\"
  nm = ActiveWorkbook.Name
  ActiveWorkbook.SaveAs Filename:=pt & "tempo.xls"
  Name pt & nm As pt & "tempo2.xls"
  ActiveWorkbook.SaveAs Filename:=pt & nm


   file = Dir(pt)
   If file = nm Then file = Dir
    While (file <> "")
        If Right(file, 4) = ".xls" Then
            If file = "tempo.xls" Then file = Dir
                new_n = Left(file, Len(file) - 4)
            Kill pt & file
            FileCopy pt & "tempo.xls", pt & new_n & ".xls"
       End If
        file = Dir
    Wend
    
            Kill pt & "tempo.xls"
            Kill pt & "tempo2.xls"
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

 

Copy to all.rar

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

الكود رائع اخي محمود وهو المطلوب ولكن لي طلب اضافي هلي يمكنان يقوم هذا الملف بنفس العمل ولكن لاي ملف مفتوح فقط اي عند الضغط علي الزر يقوم بنسخ بياناته للملفات المفتوحة فقط وتلقائي شكر لسياتك وارجو المعذرة لكثرة الطلبات

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

  • أفضل إجابة

السلام عليكم

أخي الكريم

لنسخ بياناته للملفات المفتوحة فقط (ليس شرطا ان تكون في نفس مساره) غير الكود إلي
Sub Copy_to_all()
On Error Resume Next
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim f_name(99) As String

  pt = ActiveWorkbook.Path & "\"
  nm = ActiveWorkbook.Name
  ActiveWorkbook.SaveAs Filename:=pt & "tempo.xls"
    Kill pt & nm
  ActiveWorkbook.SaveAs Filename:=pt & nm

    d = 0
10    ActiveWindow.ActivateNext
    If ActiveWorkbook.Name = nm Then GoTo 20
        d = d + 1
        f_name(d) = ActiveWorkbook.Path & "\" & ActiveWorkbook.Name
        ActiveWindow.Close
    
GoTo 10
20 If d = 0 Then MsgBox ("No files open except this ..No change"): Exit Sub
       
       For i = 1 To d
            Kill f_name(i)
            FileCopy pt & "tempo.xls", f_name(i)
            Workbooks.Open Filename:=f_name(i)
       Next i
    
    Kill pt & "tempo.xls"

Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
رابط هذا التعليق
شارك

السلام عليكم

أخي الكريم

وجدت في إحدي طلباتك أنك تعمل فقط علي الإمتداد xls

لذلك فقد حددته كذلك

وكما قلت لك بالمشاركة #7

سيعمل الكود علي الملفات التي امتدادها .xls فقط

وطبعا يمكن تعديله ليشمل كافة امتدادات الإكسل

 

 

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

لاحظت ان الكود يعمل ساعات ولا يعمل مرات اخري فما السبب

 

 

لا أدري

ولكن يمكنك إيقاف تفعيل اول أمر في الكود بعمل ' أبوستوف قبله هكذا

On Error Resume Next'

 

وبعد إيقاف تفعيل هذا الأمر ، لن يتجاوز عن الخطأ وسيقف عند الخطأ ويضع عنده لون أصفر (في الكود)

مما سيعطيك فرصة لفهم السبب أو تنقل لنا أين الخطأ بعد تلوينه بالأصفر

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

السلام عليكم

هذا الأمر يغير إسم الملف الأصلي nm الذي في المسار pt إلي الإسم tempo2.xls الذي في المسار pt أيضا

وهذا في إعتقادي لايعطي خطأ إلا إذا

1- كان الملف nm غير موجود (بالفعل تم تغيير إسمه قبل هذه الخطوة)

2- كان الملف nm مفتوح

 
ولن أستطيع التقرير ، أنت الذي تقرر سبب الخطأ ، تقول
لاحظت ان الكود يعمل ساعات ولا يعمل مرات اخري فما السبب

 

فعليك ملاحظة في أي الحالات بالضبط

وأيضا إرسل لي صورة من الرسالة التي يعطيها مع الخطأ

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

اخي الفاضل محمود اشكرك علي حسن اهتمام وادعو الله ان يجعله في ميزان حساناتك

اتبعت تعليمات سيادتك ووجدت الخطاء عند السطر

  Kill f_name(i)

يتوقف البرنامج مع ملاحظة ان البرنامج حاليا لا يعمل اطلاقا ولكنه يكون الملف tempo.xls ولا يلغيه

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

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