JavaScript is not enabled!...Please enable javascript in your browser

جافا سكريبت غير ممكن! ... الرجاء تفعيل الجافا سكريبت في متصفحك.

-->
الصفحة الرئيسية

دليل شامل: كيفية إنشاء ملفات Excel متعددة من ملف واحد باستخدام VBA

 

دليل شامل: كيفية إنشاء ملفات Excel متعددة من ملف واحد باستخدام VBA

 


في عالم تحليل البيانات وإدارة الملفات، يعد تقسيم البيانات الكبيرة إلى ملفات متعددة أمرًا ضروريًا لتحسين التنظيم وسهولة الوصول إلى المعلومات. باستخدام لغة VBA في Excel، يمكنك أتمتة هذه العملية بسهولة وإنشاء ملفات Excel متعددة تلقائيًا من ملف رئيسي واحد. في هذا المقال، سنتعرف على كود VBA سهل لإنشاء ملفات جديدة في مجلد محدد (مثل مجلد `test` على سطح المكتب)، مع شرح تفصيلي وأمثلة عملية.

المجتويات

 كود VBA لإنشاء ملفات Excel متعددة 

 تقسيم بيانات Excel إلى ملفات منفصلة 

 أتمتة إنشاء الملفات في Excel 

 إنشاء مجلد وإضافة ملفات باستخدام VBA 

 تصدير بيانات Excel إلى ملفات متعددة 

 برمجة Excel لإنشاء تقارير فردية 

 حفظ البيانات في مجلد معين باستخدام VBA 

 كود VBA لإنشاء ملفات من جدول بيانات 

 توليد ملفات Excel تلقائيًا 

 إدارة الملفات باستخدام VBA 

 لماذا تحتاج إلى هذا الكود؟ 

1. تنظيم البيانات: تقسيم ملف Excel كبير إلى ملفات صغيرة يسهل إدارتها. 

2. أتمتة المهام: توفير الوقت والجهد في إنشاء الملفات يدويًا. 

3. إنشاء تقارير فردية: مثلاً، إنشاء ملف لكل عميل أو موظف. 

4. النسخ الاحتياطي: حفظ البيانات في ملفات منفصلة يقلل من خطر فقدانها. 

 

 الكود الكامل مع الشرح 

       

        Sub AddDataToExistingFiles()

    Dim wsSource As Worksheet

    Dim wbDest As Workbook

    Dim lastRow As Long, lastDestRow As Long, i As Long

    Dim folderPath As String, fileName As String

    Dim fileExists As Boolean

   

'    ' 1

Set wsSource = ThisWorkbook.Sheets("sheet1")

   

    '2

    desktopPath = CreateObject("WScript.Shell").SpecialFolders("Desktop")

   

    ' 3

    folderPath = desktopPath & "\Test1\"

   

    ' 

    If Dir(folderPath, vbDirectory) = "" Then

        MkDir folderPath

    End If

   

    ' 5

    lastRow = wsSource.Cells(Rows.Count, 1).End(xlUp).Row

   

    '  6

    For i = 2 To lastRow

        fileName = wsSource.Cells(i, 1).Value

       

        '7

        fileExists = Dir(folderPath & fileName & ".xlsx") <> ""

       

        If fileExists Then

            ' 8

            Set wbDest = Workbooks.Open(folderPath & fileName & ".xlsx")

           

            '9

            lastDestRow = wbDest.Sheets(1).Cells(Rows.Count, 1).End(xlUp).Row + 1

           

            ' 10

            wsSource.Rows(i).Copy

            wbDest.Sheets(1).Cells(lastDestRow, 1).PasteSpecial xlPasteAll

           

            ' 11

            wbDest.Close SaveChanges:=True

        Else

            ' 12ð

            Set wbDest = Workbooks.Add

           

            '  13

            wsSource.Rows(1).Copy

            wbDest.Sheets(1).Range("A1").PasteSpecial xlPasteAll

           

            ' 14

            wsSource.Rows(i).Copy

            wbDest.Sheets(1).Range("A2").PasteSpecial xlPasteAll

          

            ' 15

            Application.DisplayAlerts = False

            wbDest.SaveAs folderPath & fileName & ".xlsx"

            wbDest.Close

            Application.DisplayAlerts = True

             Application.CutCopyMode = False

        End If

    Next i

    Application.CutCopyMode = False

    MsgBox "Êã ÊÍÏíË ÇáãáÝÇÊ ÈäÌÇÍ!", vbInformation

End Sub

 

 شرح الكود خطوة بخطوة 

 

1. تعريف المتغيرات: 

    `ws`: الورقة النشطة في Excel. 

    `newWb`: الملف الجديد الذي سيتم إنشاؤه. 

    `desktopPath`: مسار سطح المكتب. 

    `folderPath`: مسار المجلد الجديد (`test`). 

 

2. إنشاء مجلد `test` إذا لم يكن موجودًا: 

    يستخدم الدالة `Dir` للتحقق من وجود المجلد. 

    إذا لم يكن موجودًا، يتم إنشاؤه باستخدام `MkDir`. 

 

3. قراءة البيانات من الورقة النشطة: 

    يتم تحديد آخر صف في العمود `A` (حيث توجد أسماء الملفات). 

 

4. حلقة لإنشاء الملفات: 

    لكل صف (بدءًا من الصف الثاني)، يتم: 

      إنشاء ملف Excel جديد (`Workbooks.Add`). 

      نسخ العناوين من الصف الأول. 

      نسخ البيانات من الصف الحالي. 

      حفظ الملف باسم مأخوذ من العمود `A`. 

5. إظهار رسالة تأكيد: 

    تُظهر عدد الملفات التي تم إنشاؤها. 

 

 كيفية استخدام الكود؟ 

 

1. فتح محرر VBA: 

    اضغط `Alt + F11` في Excel. 

    انقر `Insert` > `Module`. 

    الصق الكود. 

 

2. إعداد البيانات: 

    تأكد من أن العمود A يحتوي على أسماء الملفات. 

    ضع العناوين في الصف الأول. 

 

3. تشغيل الكود: 

    اضغط `F5` أو `Run`. 

 

 

 

 تعديلات مقترحة للكود 

 

1. تغيير مكان الحفظ: 

folderPath = "C:\MyReports\"  ' بدلاً من سطح المكتب

 

 

 

  

 

2. تغيير صيغة الملفات إلى `.xls`: 

newWb.SaveAs folderPath & fileName & ".xls", FileFormat:=xlExcel8

 

3. إضافة تاريخ إلى اسم الملف: 

  fileName = ws.Cells(i, 1).Value & "_" & Format(Date, "dd-mm-yyyy")

 

4. تجاهل الأخطاء: 

  On Error Resume Next  ' تجاهل الأخطاء

' الكود هنا

On Error GoTo 0      ' إعادة تفعيل اكتشاف الأخطاء

  

 الاستخدامات العملية 

1. إنشاء تقارير موظفين: 

    ملف لكل موظف يحتوي على بياناته. 

2. أرشفة بيانات العملاء: 

    حفظ بيانات كل عميل في ملف منفصل. 

3. تقسيم البيانات الشهرية: 

    إنشاء ملف لكل شهر. 

 الخلاصة 

هذا الكود يُعد حلاً قويًا لأتمتة إنشاء ملفات Excel متعددة من ملف واحد. يمكنك تخصيصه ليناسب احتياجاتك، مثل تغيير مكان الحفظ أو إضافة تواريخ إلى أسماء الملفات. 

لتحميل ملف العمل هنا


 كلمات مفتاحية إضافية: 

 برمجة Excel للمبتدئين 

 أتمتة المهام الروتينية 

 تصدير بيانات Excel إلى مجلد 

 VBA لإنشاء ملفات من جدول بيانات 

 إدارة البيانات باستخدام Excel VBA 

جرب الكود بنفسك ووفر الوقت في إدارة ملفاتك!

الاسمبريد إلكترونيرسالة