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

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

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

🔥 كيف تصنع محرك بحث داخل إكسيل بخطوات بسيطة | Search Box في Excel باستخدام VBA - شرح عملي

 

 📊 الدليل الشامل: إنشاء محرك بحث ذكي داخل Excel باستخدام VBA

 


🎯  لماذا نحتاج محرك بحث داخل Excel؟

في عالم يعج بالبيانات، أصبحت برامج الجداول الحسابية مثل Microsoft Excel مستودعات ضخمة للمعلومات. لكن العثور على بيانات محددة ضمن آلاف الصفوف قد يكون كالبحث عن إبرة في كومة قش!

تخيل هذا السيناريو: لديك ملف Excel يحتوي على 10,000 سجل عملاء، وتحتاج للعثور على كل العملاء الذين يعيشون في مدينة "القاهرة". البحث اليدوي قد يستغرق ساعات، ولكن بمحرك البحث الذي سننشئه، ستظهر النتائج خلال ثوانٍ أثناء كتابتك!

 🔍 الجزء الأول: فهم الكود البرمجي

 الكود الكامل مع الشرح المفصل:

' هذا الكود ينفذ عند تغيير نص في مربع البحث

Private Sub TextBox1_Change()

    ' تعريف المتغيرات التي سنستخدمها

    Dim كلمة_البحث As String     ' لتخزين نص البحث المدخل

    Dim خلية As Range            ' لتخزين كل خلية أثناء البحث

    Dim نطاق_البحث As Range      ' لتحديد المنطقة التي نبحث فيها

    ' 🔄 الخطوة 1: تنظيف التمييز السابق

    ' هذه الأهمية: عند بدء بحث جديد، نزيل ألوان البحث القديم

    Cells.Interior.ColorIndex = xlNone  ' xlNone = بلا لون

 

    ' 📥 الخطوة 2: قراءة نص البحث من المربع

    كلمة_البحث = TextBox1.Value  ' TextBox1 هو اسم مربع البحث

    ' الخطوة 3: إذا كان المربع فارغاً، توقف عن التنفيذ

    If كلمة_البحث = "" Then

        Exit Sub  ' Exit Sub = اخرج من البرنامج الفرعي

    End If

    ' 📊 الخطوة 4: تحديد نطاق البحث

    ' هنا نحدد أن نبحث في الخلايا من A2 إلى F1000

    Set نطاق_البحث = Range("A2:F1000")

    ' يمكنك تغيير "A2:F1000" إلى أي نطاق تريده

   

    ' 🔎 الخطوة 5: البحث الفعلي في كل خلية

    ' For Each = لكل عنصر في المجموعة

    For Each خلية In نطاق_البحث

 

        ' InStr = دالة للبحث عن نص داخل نص آخر

        ' المعلمات: (1 = البداية من أول حرف,

        '            خلية.Value = النص الموجود في الخلية,

        '            كلمة_البحث = النص الذي نبحث عنه,

        '            vbTextCompare = تجاهل حالة الأحرف)

        If InStr(1, خلية.Value, كلمة_البحث, vbTextCompare) > 0 Then

           

            ' 🎨 الخطوة 6: إذا وجدنا النص، نلون الخلية

            ' RGB(144, 238, 144) = لون أخضر فاتح

            ' RGB = Red, Green, Blue (قيم من 0 إلى 255)

            خلية.Interior.Color = RGB(144, 238, 144)

      

        End If  ' نهاية الشرط If   

    Next خلية  ' الانتقال للخلية التالية

End Sub  ' نهاية البرنامج الفرعي

 🧩 الجزء الثاني: شرح كل سطر بالتفصيل

 1. `Private Sub TextBox1_Change()`

- Private`: يعني أن هذا الكود خاص بهذه النافذة فقط

- Sub`: اختصار لـ "Subroutine" أو برنامج فرعي

- TextBox1_Change`: اسم الحدث، يعني "عند تغيير TextBox1"

- الوظيفة: هذا السطر يقول "عندما يكتب المستخدم أي حرف في مربع البحث، نفذ الكود التالي"

 2. `Dim` (تعريف المتغيرات)

Dim المتغير As النوع

- Dim`: اختصار لـ "Dimension" أو تعريف

- الهدف: حجز مكان في ذاكرة الكمبيوتر لتخزين البيانات

- مثال: `Dim اسم As String` يعني "احجز مكاناً لنص اسمه 'اسم'"

 3. `Cells.Interior.ColorIndex = xlNone`

- Cells`: يشير إلى كل الخلايا في الورقة

- Interior`: الجزء الداخلي للخلية

- ColorIndex`: رقم اللون

- xlNone`: ثابت يعني "بلا لون" (قيمته -4142)

- الهدف: إزالة أي تلوين سابق

 4. `If كلمة_البحث = "" Then Exit Sub`

- الشرط: إذا كان نص البحث فارغاً

- ""`: نص فارغ (بدون أي أحرف)

- Exit Sub`: اخرج من البرنامج حالاً

- الهدف: توفير الوقت والموارد عند عدم وجود بحث

 5. `Set نطاق_البحث = Range("A2:F1000")`

- Set`: لتعريف كائن (Object) في VBA

- Range("A2:F1000")`: نطاق الخلايا من A2 إلى F1000

- نصائح:

  - يمكنك استخدام `UsedRange` للبحث في كل الخلايا المستخدمة

  - يمكن تحديد نطاق ديناميكي: `Range("A2:F" & LastRow)`

 6. `For Each خلية In نطاق_البحث`

- الحلقة: تكرار عملية لكل خلية في النطاق

- مثال: إذا كان النطاق 1000 خلية، الكود يتكرر 1000 مرة

- الكفاءة: أسرع من استخدام `For i = 1 To 1000`

 7. `InStr(1, خلية.Value, كلمة_البحث, vbTextCompare)`

هي الدالة الأساسية في محرك البحث، فلنفهمها بعمق:

الصيغة الكاملة:

InStr([Start], String1, String2, [Compare])

النتائج الممكنة:

- > 0: وجد النص (الرقم هو موقع بداية النص)

- = 0: لم يجد النص

- = Null: أحد النصوص فارغ

 

 📈 الخلاصة: لماذا هذا الكود مهم؟

 المزايا الرئيسية:

1. التوفير في الوقت: تقليل وقت البحث بنسبة تصل إلى 90%

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

3. المرونة: يمكن تعديله لأي نوع من البيانات

4. المظهر الاحترافي: يمنح ملفات Excel مظهراً احترافياً

 

 المجالات التطبيقية:

- المؤسسات: إدارة قواعد بيانات العملاء

- المستودعات: تتبع المخزون

- المدارس: إدارة بيانات الطلاب

- المستشفيات: سجلات المرضى

- المتاجر: إدارة المبيعات

 المهارات التي تعلمتها:

البرمجة بـ VBA 

التعامل مع الأحداث في Excel 

إنشاء واجهات مستخدم تفاعلية 

تحسين أداء Excel 

حل مشاكل العمل الحقيقية 

 🎁 بونص: ملف Excel جاهز للتحميل

لتنزيل ملف Excel يحتوي على:

- محرك البحث الأساسي

- نسخة محسنة بالأداء

- أمثلة تطبيقية

- كود لجميع الميزات المتقدمة

[رابط التحميل - الرابط هنا]

📞 للاستفسارات أو المساعدة:

شارك تجربتك في التعليقات أو اطرح أي سؤال عن الكود!

🔔 لا تنسى: حفظ هذا المقال للرجوع إليه عند الحاجة!

العقل الذي يمتد بفكرة جديدة لن يعود أبداً إلى حجمه الأصلي" - أوليفر وندل هولمز*

ابدأ الآن! افتح Excel، أنشئ ملفاً جديداً، وطبق ما تعلمته خطوة بخطوة. ستتفاجأ بما يمكنك تحقيقه ببضعة أسطر من الكود! 💪

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