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

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

-->
Home

كيفية عمل قائمة منسدلة بأسماء أوراق العمل في Excel دليل شامل مع أكواد جاهزة

 

كيفية عمل قائمة منسدلة بأسماء أوراق العمل في Excel  دليل شامل مع أكواد جاهزة 

هل تبحث عن طريقة إنشاء قائمة منسدلة (Dropdown List) في Excel تحتوي على جميع أسماء أوراق العمل (Sheets) تلقائياً؟ سواء كنت تستخدم Excel 2010، 2013، 2016، 2019، أو 365، فهذا الدليل سيشرح لك أفضل طريقتين لعمل ذلك: 

 


1. بطريقة تلقائية باستخدام VBA (ماكرو) 

2. بدون ماكرو باستخدام دالات Excel المتقدمة 

 

سنتعرف أيضاً على كيفية تحديث القائمة تلقائياً عند إضافة أو حذف أوراق، مع حلول عملية لأهم المشاكل الشائعة. 

 

🔹 لماذا تحتاج إلى قائمة منسدلة بأسماء أوراق العمل؟ 

  •  الانتقال السريع بين الأوراق دون البحث يدوياً. 
  •  إنشاء لوحات تحكم (Dashboard) تفاعلية. 
  •  ربط البيانات بين أوراق متعددة بسهولة. 

 

🔹 الطريقة الأولى: عمل قائمة منسدلة بأسماء الشيتات باستخدام VBA (أوتوماتيكي) 

  •  الخطوة 1: فتح محرر VBA 
  •  اضغط `Alt + F11` لفتح محرر الأكواد. 
  •  اختر Insert > Module. 

 

 الخطوة 2: نسخ الكود التالي 

 

Sub CreateSheetNamesDropdown()

    Dim ws As Worksheet

    Dim sheetList As String

    Dim separator As String

   

    separator = ""

    For Each ws In ThisWorkbook.Worksheets

        sheetList = sheetList & separator & ws.Name

        separator = ","

    Next ws

   

    With Sheets("الورقة1").Range("A2").Validation

        .Delete

        .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:=xlBetween, Formula1:=sheetList

        .IgnoreBlank = True

        .InCellDropdown = True

    End With

   

    MsgBox "تم إنشاء القائمة المنسدلة بنجاح!", vbInformation

End Sub

 

 

الخطوة 3: تشغيل الماكرو 

 اضغط `Alt + F8`، اختر `CreateSheetNamesDropdown`، ثم Run. 

 سيتم إنشاء قائمة منسدلة في الخلية A2 تحتوي على جميع أسماء الأوراق. 

 

  كيف تجعل القائمة تُحدَّث تلقائياً؟ 

أضف هذا الكود في `ThisWorkbook`: 

Private Sub Workbook_NewSheet(ByVal Sh As Object)

    Call CreateSheetNamesDropdown

End Sub

 

Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    ' للتحديث عند تغيير الأوراق (حل بديل لحذف الأوراق)

    Call CreateSheetNamesDropdown

End Sub

 

🔹 الطريقة الثانية: عمل القائمة بدون ماكرو (باستخدام دالات Excel) 

 

 الخطوة 1: إنشاء اسم ديناميكي (Named Range) 

1. انتقل إلى Formulas > Define Name. 

2. أدخل الاسم SheetNames. 

3. في Refers To، أدخل: 

 

 

=REPLACE(GET.WORKBOOK(1),1,FIND("]",GET.WORKBOOK(1)),"")

 

 الخطوة 2: استخدام الدالة INDIRECT لعمل القائمة 

  •  اختر الخلية المراد وضع القائمة فيها (مثل A2). 
  •  انتقل إلى Data > Data Validation. 
  •  اختر List، وأدخل: 

 

=INDIRECT("SheetNames")

 

ملاحظة: هذه الطريقة تتطلب حفظ الملف كـ MacroEnabled Workbook (.xlsm) لأنها تستخدم `GET.WORKBOOK`. 


🔹 مشاكل شائعة وحلولها 

 

| المشكلة                                                 | الحل |

| لا تظهر القائمة بعد تشغيل الماكرو                   | تأكد من تفعيل الماكرو عند فتح الملف (Enable Content). |

| ظهور أسماء ملفات أخرى                            | استخدم `ThisWorkbook.Worksheets` بدلاً من `Application.Worksheets`.

| لا يتم التحديث عند حذف أوراق                       | أضف زر تحديث يدوي أو استخدم `Workbook_SheetActivate`. |

 

الآن أصبح لديك أفضل طريقتين لعمل قائمة منسدلة بأسماء أوراق Excel، سواء باستخدام VBA أو بدون ماكرو. 

 

الطريقة الأولى (VBA) أفضل لأنها تحدَّث تلقائياً. 

الطريقة الثانية (بدون ماكرو) مناسبة إذا كنت لا تريد استخدام أكواد. 

 

💡 نصيحة أخيرة: احفظ الملف كـ .xlsm إذا استخدمت الماكرو أو دالة `GET.WORKBOOK`. 

 كيفية عمل قائمة منسدلة في Excel 

 إنشاء dropdown list بأسماء الشيتات 

 طريقة عرض أسماء الأوراق في خلية Excel 

 تحديث قائمة منسدلة تلقائياً عند إضافة شيت 

 Excel VBA لعمل قائمة أوراق العمل 

 

بهذا الدليل الشامل، أصبح بإمكانك إنشاء قوائم منسدلة ذكية في Excel بسهولة! 🚀

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

NameEmailMessage