برمجة VBA في Excel تُعد أداة قوية وفعّالة لتحسين وتسهيل عمليات التحليل والتلاعب في البيانات. يظهر الجدول الخاص بك، الذي يحتوي على معرّفات العناصر وأسماءها، كتحدي لتحقيق ترتيب هيكلي وفعّال على ورقة العمل الثانية باستخدام برمجية VBA.
قبل البدء في البرمجة، يجب تحديد الهدف الرئيسي. في حالتك، يبدو أن الهدف هو نقل البيانات من ورقة العمل الأصلية إلى ورقة عمل جديدة، حيث يتم عرض أسماء العناصر في أعمدة مختلفة لنفس معرّف العنصر.
لتحقيق ذلك، يمكنك استخدام رموز VBA للوصول إلى البيانات وتنظيمها بشكل مناسب. يمكن أن يكون الكود كالتالي:
vbaSub نقل_البيانات() ' تعيين متغيرات لورقتي العمل Dim ورقةالعملالأصلية As Worksheet Dim ورقةالعملالجديدة As Worksheet Set ورقةالعملالأصلية = ThisWorkbook.Sheets("اسم_ورقة_العمل_الأصلية") Set ورقةالعملالجديدة = ThisWorkbook.Sheets("اسم_ورقة_العمل_الجديدة") ' تعيين المتغيرات الأخرى Dim الصف_الأصلي As Long Dim الصف_الجديد As Long Dim آخر_صف_الجديد As Long ' تهيئة المتغيرات الصف_الجديد = 1 آخر_صف_الجديد = 1 ' البدء في الحلقة لنقل البيانات For الصف_الأصلي = 2 To ورقةالعملالأصلية.Cells(Rows.Count, 1).End(xlUp).Row ' فحص إذا كان معرف العنصر متكرر If ورقةالعملالأصلية.Cells(الصف_الأصلي, 1).Value <> ورقةالعملالأصلية.Cells(الصف_الأصلي - 1, 1).Value Then ' إذا كان مختلفًا، زيادة الصف في ورقة العمل الجديدة آخر_صف_الجديد = آخر_صف_الجديد + 1 الصف_الجديد = 1 End If ' نقل البيانات إلى العمود المناسب في ورقة العمل الجديدة ورقةالعملالجديدة.Cells(آخر_صف_الجديد, الصف_الجديد).Value = ورقةالعملالأصلية.Cells(الصف_الأصلي, 2).Value ' زيادة عدد الصفوف في ورقة العمل الجديدة الصف_الجديد = الصف_الجديد + 1 Next الصف_الأصلي End Sub
هذا الكود يتيح لك نقل البيانات بشكل فعّال، حيث يتم تحديد معرّف العنصر ونقل الأسماء المتعلقة به إلى عمود منفصل في ورقة العمل الجديدة. يمكنك تخصيص أسماء ورق العمل وتنظيم الكود بحسب احتياجاتك.
المزيد من المعلومات
تطوير برامج VBA في Excel يُعتبر خطوة ذكية لتحسين كفاءة وسرعة تحليل البيانات، ويعد تنظيم البيانات على ورقة العمل الجديدة هو التحدي الأساسي الذي تتعامل معه. يمكننا فهم الكود أكثر تفصيلاً:
-
تعيين المتغيرات:
- يتم استخدام
Dim
لتعيين المتغيرات مثل ورقة العمل الأصلية والجديدة ومتغيرات الصفوف.
vbaDim ورقةالعملالأصلية As Worksheet Dim ورقةالعملالجديدة As Worksheet Dim الصف_الأصلي As Long Dim الصف_الجديد As Long Dim آخر_صف_الجديد As Long
- يتم استخدام
-
تهيئة المتغيرات:
- تهيئة المتغيرات الرقمية مثل
الصف_الجديد
وآخر_صف_الجديد
لضبط المواقع في ورقة العمل الجديدة.
vbaالصف_الجديد = 1 آخر_صف_الجديد = 1
- تهيئة المتغيرات الرقمية مثل
-
الحلقة:
- يستخدم الكود حلقة
For
للمرور عبر صفوف ورقة العمل الأصلية. - يتم فحص ما إذا كانت قيمة معرّف العنصر مختلفة عن الصف السابق.
- في حالة التغيير، يتم زيادة رقم الصف في ورقة العمل الجديدة.
vbaFor الصف_الأصلي = 2 To ورقةالعملالأصلية.Cells(Rows.Count, 1).End(xlUp).Row If ورقةالعملالأصلية.Cells(الصف_الأصلي, 1).Value <> ورقةالعملالأصلية.Cells(الصف_الأصلي - 1, 1).Value Then آخر_صف_الجديد = آخر_صف_الجديد + 1 الصف_الجديد = 1 End If ' باقي الكود... Next الصف_الأصلي
- يستخدم الكود حلقة
-
نقل البيانات:
- يتم نقل البيانات من ورقة العمل الأصلية إلى ورقة العمل الجديدة باستخدام
Cells
.
vbaورقةالعملالجديدة.Cells(آخر_صف_الجديد, الصف_الجديد).Value = ورقةالعملالأصلية.Cells(الصف_الأصلي, 2).Value
- يتم نقل البيانات من ورقة العمل الأصلية إلى ورقة العمل الجديدة باستخدام
-
تكرار العملية:
- يُكرر هذا العمل لجميع الصفوف في ورقة العمل الأصلية.
vbaالصف_الجديد = الصف_الجديد + 1 Next الصف_الأصلي
-
التخصيص:
- يمكنك تخصيص اسماء ورق العمل وتنظيم الكود حسب احتياجاتك.
يعتبر هذا الكود أولياً ويمكن أن يتطلب تعديلات إضافية بناءً على ترتيب بياناتك الفعلي والاحتياجات الخاصة بك. قد تحتاج أيضًا إلى تحسين الأكواد لمعالجة الحالات الخاصة التي قد تظهر في بياناتك.