Skip to main content

كيفية تعتيم الخلايا بناءً على عمود آخر أو اختيار قائمة منسدلة في Excel؟

Author: Sun Last Modified: 2025-07-21

في مهام Excel العملية، هناك غالبًا سيناريوهات تحتاج فيها إلى جعل البيانات بارزة بصريًا أو أقل وضوحًا اعتمادًا على قيمة الخلية المرتبطة. أحد المتطلبات الشائعة هو تعتيم (إضعاف أو تعطيل بصريًا) بعض الخلايا تلقائيًا عندما يحتوي العمود الآخر على قيمة معينة أو عند اختيار عنصر من قائمة منسدلة.
يُسهل هذا التنسيق الديناميكي تفسير مجموعات البيانات الكبيرة، ويدعم سير العمل حيث يجب تقييد الإدخال، أو يوضح العناصر التي لا يمكن تنفيذها حاليًا. على سبيل المثال، قد يؤدي عمود حالة المشروع إلى تعتيم الوصف إذا كانت الحالة "مكتمل".
يقدم هذا المقال عدة طرق فعالة لتعتيم الخلايا بناءً على قيم عمود آخر أو اختيار قائمة منسدلة في Excel، بما يغطي التنسيق الشرطي القياسي والأساليب الأكثر تقدمًا باستخدام VBA لمتطلبات أكثر تعقيدًا. كما ستجد اقتراحات استكشاف الأخطاء وإصلاحها ونصائح عملية للتطبيق.
grey out cells based on another column

تعتيم الخلايا بناءً على عمود آخر أو اختيار قائمة منسدلة

VBA: أتمتة تعتيم الخلايا بناءً على عمود آخر أو قائمة منسدلة


arrow blue right bubble تعتيم الخلايا بناءً على عمود آخر أو اختيار قائمة منسدلة

لنفترض أن لديك عمودين: العمود A يحتوي على بياناتك الرئيسية (مثل المهام أو الأوصاف)، والعمود B يحتوي على علامات أو مؤشرات حالة (مثل "نعم"/"لا"، أو الاختيارات من قائمة منسدلة). قد ترغب في تعتيم العناصر في العمود A بصريًا بناءً على القيم في العمود B. على سبيل المثال، عندما تعرض خلية في العمود B "نعم"، ستظهر الخلية المقابلة في العمود A باهتة، مما يشير إلى أنها غير نشطة أو مكتملة. إذا كان العمود B يتضمن أي شيء آخر غير "نعم"، يبقى العمود A بنفس الشكل الطبيعي.

هذا الأسلوب مناسب لجداول إدارة المهام، قوائم التحقق، سير العمل، أو أي جدول حيث تعتمد حالة عمود واحد على تنسيق العمود الآخر. يبقي بياناتك منظمة وسهلة الاستخدام ولكنه يعتمد على أعمدة مرتبة ومُنسّقة بشكل صحيح (تأكد من أن صفوفك متوافقة بدقة).

1. حدد الخلايا في العمود A التي تريد تعتيمها تلقائيًا بناءً على العمود الآخر. على سبيل المثال، حدد A2:A100 (حدد فقط الخلايا التي تتطابق مع النطاق المستخدم في العمود B). ثم انتقل إلى الرئيسية > تنسيق شرطي > قاعدة جديدة.
click Home > Conditional Formatting > New Rule

2. في مربع الحوار قاعدة التنسيق الجديدة، انقر على استخدام صيغة لتحديد الخلايا المراد تنسيقها. أدخل هذه الصيغة =B2="نعم" في المربع الذي يحمل عبارة تنسيق القيم التي تكون هذه الصيغة صحيحة لها، والتي تتحقق إذا كانت قيمة الخلية المقابلة في العمود B هي "نعم":

3. بعد ذلك، انقر فوق الزر تنسيق في مربع الحوار تنسيق الخلايا اختر لون رمادي موجود في تبويب تعبئة سيكون هذا اللون هو لون الخلفية المستخدم لتعتيم الخلايا.
specify options in the New Formatting Rule dialog

4. بعد تعيين اللون، انقر موافق لإغلاق نافذة تنسيق الخلايا، ثم انقر موافق مرة أخرى لتطبيق قاعدة التنسيق الجديدة.
the cells have been greyed out based on another column values

من الآن فصاعدًا، كلما عرض العمود B "نعم"، ستظهر الخلية المقابلة في العمود A باهتة. إذا تم تغيير العمود B إلى قيمة أخرى (مثل "لا" أو فارغة)، يعود العمود A إلى مظهره الطبيعي. هذه الطريقة فورية ولا تحتاج إلى تحديث يدوي بعد الإعداد.

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

لإنشاء قائمة منسدلة في العمود B (العمود المتحكم):

  1. حدد الخلايا في العمود B حيث تريد وجود قائمة منسدلة.
  2. انقر على البيانات > التحقق من صحة البيانات.
  3. في مربع الحوار التحقق من صحة البيانات، اختر قائمة من السماح القائمة المنسدلة. في مربع المصدر اكتب أو حدد نطاق خلايا يحتوي على القيم المسموح بها (مثل نعم,لا).
    create a drop down list in the Data Validation dialog

الآن، لديك قائمة منسدلة في كل خلية من العمود B، مما يتيح للمستخدمين اختيار الخيارات المحددة:
the drop down list has been created

كرر إعداد التنسيق الشرطي كما في الخطوات أعلاه، باستخدام صيغة تطابق العنصر الذي ترغب في تشغيل التعتيم الرمادي (مثل =B2="نعم"بعد تطبيق التنسيق الشرطي، ستصبح الخلايا المستهدفة في العمود A باهتة تلقائيًا كلما تم اختيار "نعم" في القائمة المنسدلة في العمود B.
repeat the steps to get the result

نصائح واحتياطات إضافية:
- تأكد من أن النطاق الخاص بالتنسيق الشرطي في العمود A يطابق منطقة البيانات ويتطابق مع مراجع العمود B. إذا حدث عدم توافق، قد لا يتم تطبيق التنسيق كما هو متوقع.
- عند نسخ أو تعبئة البيانات في الأعمدة، تحقق من تحديث المراجع (مثل B2) بشكل مناسب.
- لتحقيق أفضل النتائج، قم بإزالة أي تنسيقات قديمة من النطاقات قبل تطبيق القواعد الجديدة.
- لإزالة التأثير الباهت، قم بتغيير قيمة المشغل في القاعدة الموجودة في العمود B أو حذف قاعدة التنسيق الشرطي.
- إذا كانت ورقة العمل مشتركة، تأكد من أن المستخدمين يعرفون القيم التي ستشغّل التنسيق.

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

a screenshot of kutools for excel ai

اكتشف سحر Excel مع Kutools AI

  • التنفيذ الذكي: قم بعمليات الخلية، وتحليل البيانات، وإنشاء المخططات - كل ذلك يتم من خلال أوامر بسيطة.
  • الصيغ المخصصة: قم بإنشاء صيغ مصممة خصيصًا لتسهيل سير عملك.
  • برمجة VBA: كتابة وتطبيق أكواد VBA بسهولة.
  • تفسير الصيغ: فهم الصيغ المعقدة بسهولة.
  • ترجمة النصوص: تجاوز الحواجز اللغوية داخل جداول البيانات الخاصة بك.
عزز قدرات Excel لديك باستخدام أدوات تعمل بالذكاء الاصطناعي. قم بالتنزيل الآن وعش تجربة الكفاءة كما لم يحدث من قبل!

arrow blue right bubble VBA: أتمتة تعتيم الخلايا بناءً على عمود آخر أو قائمة منسدلة

بالنسبة للسيناريوهات الأكثر تقدمًا، مثل تطبيق التنسيق على دفعات، التعامل مع شروط متعددة ومعقدة، أو عندما لا تلبي قواعد التنسيق الشرطي وحدوده متطلباتك، يمكنك استخدام كود VBA لأتمتة تعتيم الخلايا.

حالات الاستخدام الشائعة:
- تعتيم الصفوف بأكملها أو النطاقات المحددة تلقائيًا بناءً على اختيارات القائمة المنسدلة أو أي منطق مرتبط بعمود آخر.
- ضمان بقاء التنسيق متسقًا حتى بعد استيراد البيانات أو تحديثات الجداول بواسطة ماكرو.
- تطبيق حالات شرطية متعددة تتجاوز حدود التنسيق الشرطي المدمجة.

1. انقر أدوات التطوير > Visual Basic لفتح محرر VBA (Alt+F11 هو اختصار). في نافذة VBA، انقر إدراج > وحدة. في الوحدة الجديدة، انسخ والصق الكود التالي:

Sub GreyOutCellsBasedOnAnotherColumn()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim checkCol As String
    Dim dataCol As String
    Dim i As Long
    Dim triggerValue As String
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    '----- Set parameters here -----
    Set ws = ActiveSheet ' Or: Set ws = ThisWorkbook.Sheets("Sheet1")
    checkCol = "B" ' Column to check (e.g., B)
    dataCol = "A" ' Column to grey out (e.g., A)
    triggerValue = "YES" ' Value that triggers grey out. Change as needed: "YES", "Complete", etc.

    '----- Find last row in the check column -----
    lastRow = ws.Cells(ws.Rows.Count, checkCol).End(xlUp).Row
    
    For i = 2 To lastRow ' Assumes header in row 1
        If ws.Cells(i, checkCol).Value = triggerValue Then
            ws.Cells(i, dataCol).Interior.Color = RGB(191, 191, 191) ' Grey fill
        Else
            ws.Cells(i, dataCol).Interior.ColorIndex = xlNone ' Remove fill if condition not met
        End If
    Next i
End Sub

2. لتشغيل الماكرو، اضغط F5 مع تنشيط نافذة الكود. يقوم الماكرو بتكرار كل صف في ورقة العمل - بدءًا من الصف 2 (ليظل الصف الأول كعنوان) - ويتحقق من العمود B للقيمة المحفزة (افتراضيًا، "نعم"). إذا وجدها، فإنه يملأ الخلية المقابلة في العمود A باللون الرمادي. إذا كانت القيمة المحفزة غائبة، يتم إزالة أي تعبئة رمادية سابقة (إعادة تعيين الخلية إلى المظهر الافتراضي).

يمكنك تخصيص المعلمات التالية في الكود:

  • checkCol: العمود المراد التحقق منه (مثل "B")
  • dataCol: العمود المراد تعتيمه (مثل "A")
  • triggerValue: القيمة المطلوبة لتحريك التعبئة الرمادية (مثل "نعم"، "مكتمل"، أي قيمة في القائمة الخاصة بك)

تحذيرات ونصائح:

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

استخدام VBA لتعتيم الخلايا يدويًا أو تلقائيًا يقدم أقصى قدر من المرونة للحلول المعقدة، الكبيرة الحجم أو المخصصة للغاية في Excel.

أفضل أدوات الإنتاجية لمكتب العمل

🤖 Kutools AI Aide: أحدث ثورة في تحليل البيانات من خلال: التنفيذ الذكي |توليد الشيفرة |إنشاء الصيغ المخصصة |تحليل البيانات وتوليد الرسوم البيانية |استدعاء الوظائف المحسنة
الميزات الشائعة: البحث، تمييز أو وضع علامة على المكررات | حذف الصفوف الفارغة | دمج الأعمدة أو العنوان دون فقدان البيانات | تقريب ...
بحث متقدم: بحث V متعدد المعايير | بحث V متعدد القيم | بحث في عدة ورقات | مطابقة غامضة ....
قائمة منسدلة متقدمة: إنشاء قائمة منسدلة بسرعة | قائمة منسدلة تابعة | قائمة منسدلة متعددة الاختيار ....
إدارة الأعمدة: إضافة عدد محدد من الأعمدة | نقل الأعمدة | تبديل حالة إظهار الأعمدة المخفية | مقارنة النطاق والأعمدة ...
ميزات مميزة: التركيز على الشبكة | عرض التصميم | شريط الصيغ المحسن | أدوات المصنف & أدوات الورقة العمل | مكتبة النص التلقائي (Auto Text) | منتقي التاريخ | دمج البيانات | تشفير/فك تشفير الخلايا | إرسال البريد الإلكتروني حسب القائمة | مرشح متقدم | تصفية خاصة (تصفية الخلايا التي تحتوي على خط عريض/مائل/يتوسطه خط...) ...
أفضل15 مجموعة أدوات:12 أداة نصية (إضافة نص، حذف الأحرف المحددة، ...) | أكثر من50 نوع من الرسوم البيانية (مخطط جانت، ...) | أكثر من40 صيغة عملية (حساب العمر بناءً على تاريخ الميلاد، ...) |19 أداة إدراج (إدراج رمز الاستجابة السريعة، إدراج صورة من المسار، ...) |12 أداة تحويل (تحويل إلى كلمات، تحويل العملة، ...) |7 أدوات دمج وتقسيم (دمج متقدم للصفوف، تقسيم الخلايا، ...) | ... والمزيد

عزز مهاراتك في Excel مع Kutools لـ Excel، واختبر الكفاءة كما لم يحدث من قبل. Kutools لـ Excel يقدم أكثر من300 ميزة متقدمة لزيادة الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...


Office Tab يقدم واجهة التبويب لـ Office، ويجعل عملك أسهل بكثير

  • تمكين تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint.
  • افتح وأنشئ عدة مستندات في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ منفصلة.
  • يزيد إنتاجيتك بنسبة50%، ويقلل مئات النقرات بالماوس يومياً!