البرمجة

إنشاء قوائم منسدلة في Excel باستخدام VBA

عندما يكون لديك مجموعة من البيانات في ورقة عمل Excel ترغب في تحويلها إلى قوائم منسدلة (Drop Down Lists) ونسخ هذه القوائم إلى ورقة عمل أخرى، يمكنك استخدام لغة البرمجة VBA (Visual Basic for Applications) لتنفيذ هذه المهمة. سأقدم لك خطوات توضيحية لكيفية تحقيق هذا الهدف.

أولاً، يجب عليك فتح محرر VBA في Excel. يمكنك فعل ذلك عن طريق النقر فوق Alt + F11.

بمجرد فتح محرر VBA، اتبع الخطوات التالية:

  1. قم بإنشاء وحدة جديدة من خلال النقر بزر الماوس الأيمن على أحد الأشجار في مستكشف المشروع (Project Explorer) ثم اختيار “Insert” > “Module”.

  2. ثم اكتب الكود التالي في الوحدة الجديدة:

vba
Sub CreateDropDowns() Dim wsSource As Worksheet Dim wsDestination As Worksheet Dim lastRow As Long Dim lastCol As Long Dim i As Long, j As Long ' تعيين ورقة العمل المصدر Set wsSource = ThisWorkbook.Sheets("Sheet1") ' تعيين ورقة العمل الوجهة Set wsDestination = ThisWorkbook.Sheets("Sheet2") ' الحصول على آخر صف وآخر عمود في ورقة العمل المصدر lastRow = wsSource.Cells(wsSource.Rows.Count, 1).End(xlUp).Row lastCol = wsSource.Cells(2, wsSource.Columns.Count).End(xlToLeft).Column ' البدء في التحقق من الأعمدة وإنشاء قوائم المنسدلة For i = 1 To lastCol If wsSource.Cells(2, i) <> "" Then ' التحقق مما إذا كان الصف الثاني في العمود غير فارغ ' إنشاء قائمة منسدلة في العمود المصدر With wsSource.Cells(3, i).Resize(lastRow - 2) .Validation.Delete .Validation.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:="=" & wsSource.Cells(2, i).Address & "3:" & wsSource.Cells(lastRow, i).Address .Validation.IgnoreBlank = True .Validation.InCellDropdown = True .Validation.ShowInput = True .Validation.ShowError = True End With ' نسخ القائمة المنسدلة إلى ورقة العمل الوجهة wsSource.Cells(2, i).Copy wsDestination.Cells(2, i).PasteSpecial Paste:=xlPasteValidation End If Next i ' تعديل عرض الأعمدة في ورقة العمل الوجهة ليكون مناسبا للقوائم المنسدلة wsDestination.Columns.AutoFit End Sub
  1. بعد إدراج هذا الكود، قم بحفظ التغييرات وأغلق محرر VBA.

  2. يمكنك الآن تنفيذ الكود بالذهاب إلى “Developer” > “Macros”، اختيار “CreateDropDowns” ثم النقر على “Run”.

هذا الكود يقوم بفحص ورقة العمل الأولى للعمود الذي يحتوي على قيم في الصف الثاني، ومن ثم يقوم بإنشاء قائمة منسدلة لهذه القيم ونسخها إلى ورقة العمل الثانية تحت العمود نفسه. النصائح المقدمة مع القوائم المنسدلة (Validation) تسمح للمستخدم بالاختيار من بين القيم المتوفرة فقط.

المزيد من المعلومات

بالطبع، إليك بعض المعلومات الإضافية التي قد تفيدك في فهم الكود وتحقيق المهمة بنجاح:

  1. الدالة Set: تستخدم الدالة Set في VBA لتعيين قيمة متغير لكائن (Object). في الكود المذكور، يتم استخدام الدالة Set لتعيين ورقتي العمل المصدر والوجهة.

  2. الدالة End: تُستخدم الدالة End للعثور على الخلية الأخيرة في نطاق معين. في هذا السياق، يتم استخدامها للعثور على الصفوف والأعمدة الأخيرة التي تحتوي على بيانات في ورقة العمل المصدر.

  3. الدالة Resize: تُستخدم الدالة Resize لتغيير حجم النطاق المحدد من الخلايا. في الكود المذكور، يتم استخدامها لتحديد النطاق الذي يجب أن يتم تطبيق القائمة المنسدلة عليه.

  4. الدالة xlValidateList: هذه الدالة تستخدم لإنشاء قائمة منسدلة في الخلية. يتم استخدام الجزء xlValidateList من الثابت xlValidation لتحديد نوع القائمة المنسدلة.

  5. الدالة PasteSpecial: تُستخدم هذه الدالة للصق البيانات باستخدام خيارات محددة. في هذا السياق، يتم استخدامها للصق القائمة المنسدلة في ورقة العمل الوجهة تحت العمود نفسه.

  6. تنسيق القوائم المنسدلة: يتم تنسيق القوائم المنسدلة في الكود ليكون لديها خيارات الإدخال والإخراج والتحذير وعرض الخطأ.

  7. ضبط عرض الأعمدة: في النهاية، يتم ضبط عرض الأعمدة في ورقة العمل الوجهة باستخدام AutoFit، لضمان أن القوائم المنسدلة تظهر بشكل جيد دون اقتطاع.

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

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر