كيفية تعتيم الخلايا بناءً على عمود آخر أو اختيار من قائمة منسدلة في Excel؟
في مهام Excel العملية، هناك غالبًا سيناريوهات تحتاج فيها إلى جعل البيانات بارزة بصريًا أو أقل وضوحًا بناءً على قيمة الخلية المرتبطة. أحد المتطلبات الشائعة هو تعتيم (إضعاف أو إلغاء التنشيط بصريًا) بعض الخلايا تلقائيًا عندما يحتوي العمود الآخر على قيمة معينة أو عند اختيار خيار من قائمة منسدلة.
تساعد هذه التنسيقات الديناميكية في تسهيل تفسير مجموعات البيانات الكبيرة، كما تساعد في تحسين سير العمل حيث يجب تقييد الإدخال، أو توضيح العناصر التي لا يمكن تنفيذها حاليًا. على سبيل المثال، قد يؤدي وضع الحالة في عمود حالة المشروع إلى تعتيم وصف المهمة إذا كانت الحالة هي "مكتمل".
يقدم هذا المقال عدة طرق فعالة لتعتيم الخلايا بناءً على قيم عمود آخر أو اختيار من قائمة منسدلة في Excel، بما يغطي كلًا من التنسيق الشرطي القياسي والأساليب الأكثر تقدمًا باستخدام VBA للتعامل مع متطلبات أكثر تعقيدًا. ستجد أيضًا اقتراحات لحل المشكلات ونصائح عملية أثناء القراءة.
تعتيم الخلايا بناءً على عمود آخر أو اختيار من قائمة منسدلة
VBA: أتمتة تعتيم الخلايا بناءً على عمود آخر أو قائمة منسدلة
تعتيم الخلايا بناءً على عمود آخر أو اختيار من قائمة منسدلة
لنفترض أن لديك عمودين: العمود A يحتوي على بياناتك الرئيسية (مثل المهام أو الأوصاف)، والعمود B يحتوي على علامات أو مؤشرات حالة (مثل "نعم"/"لا"، أو الاختيارات من القائمة المنسدلة). قد ترغب في تعتيم العناصر الموجودة في العمود A بصريًا بناءً على القيم الموجودة في العمود B. على سبيل المثال، عندما تعرض خلية في العمود B "نعم"، ستظهر الخلية المقابلة في العمود A مُعتمة، مما يشير إلى أنها غير نشطة أو مكتملة. إذا كان العمود B يحتوي على أي شيء آخر غير "نعم"، يظل العمود A بالشكل الطبيعي.
هذا النهج مناسب لأوراق إدارة المهام، قوائم المراجعة، سير العمل، أو أي ورقة يكون فيها الحالة في عمود واحد تتحكم في تنسيق عمود آخر. يحافظ على تنظيم البيانات ويكون سهل الاستخدام ولكن يعتمد على أعمدة منتظمة ومُحاذاة بشكل صحيح (تأكد من توافق صفوفك بشكل صحيح).
1. حدد الخلايا في العمود A التي تريد تعتيمها تلقائيًا بناءً على العمود الآخر. على سبيل المثال، حدد A2:A100 (حدد فقط الخلايا التي تطابق النطاق المستخدم في العمود B). ثم انتقل إلى الرئيسية > تنسيق شرطي > قاعدة جديدة.
2. في مربع الحوار قاعدة تنسيق جديدة، انقر فوق استخدام صيغة لتحديد الخلايا التي سيتم تنسيقها. أدخل هذه الصيغة =B2="نعم" في المربع الذي يحمل عنوان تنسيق القيم حيث تكون هذه الصيغة صحيحة، والتي تتحقق إذا كانت قيمة الخلية المقابلة في العمود B هي "نعم":
3. بعد ذلك، انقر فوق الزر تنسيق في مربع الحوار تنسيق الخلايا اختر لون رمادي موجود ضمن تبويب تعبئة سيكون هذا هو لون الخلفية المستخدم لتعتيم الخلايا.
4. بعد تحديد اللون، انقر فوق موافق لإغلاق نافذة تنسيق الخلايا، ثم انقر فوق موافق مرة أخرى لتطبيق قاعدة التنسيق الجديدة.
من الآن فصاعدًا، كلما عرض العمود B "نعم"، ستظهر الخلية المقابلة في العمود A معتمة. إذا تم تغيير العمود B إلى قيمة أخرى (مثل "لا" أو فارغ)، سيعود مظهر العمود A إلى حالته الطبيعية. هذه الطريقة فورية ولا تحتاج إلى تحديث يدوي بعد الإعداد.
نصائح: لتطبيق هذا مع قائمة منسدلة في العمود B، تكون العملية مشابهة. هذا النهج مفيد بشكل خاص عندما يستخدم العمود المتحكم فيه اختيارات موحدة، مثل حالة المشروع ("قيد التنفيذ"، "مكتمل")، أو المربعات ("مكتمل"، "معلق")، أو قوائم التحقق مع قيم مسموح بها محددة.
لإنشاء قائمة منسدلة في العمود B (العمود المتحكم):
- حدد الخلايا في العمود B حيث تريد وجود قائمة منسدلة.
- انقر فوق البيانات > التحقق من صحة البيانات.
- في مربع الحوار التحقق من صحة البيانات، اختر قائمة من السماح في مربع المصدر اكتب أو حدد نطاق الخلايا الذي يحتوي على القيم المسموح بها (على سبيل المثال, نعم،لا).
الآن، لديك قائمة منسدلة في كل خلية من العمود B، مما يسمح للمستخدمين باختيار الخيارات المحددة:
كرر إعداد التنسيق الشرطي كما هو موضح أعلاه، باستخدام صيغة تتطابق مع العنصر الذي تريد تشغيل التنسيق الرمادي (على سبيل المثال, =B2="نعم"). بعد تطبيق التنسيق الشرطي، ستتحول الخلايا المستهدفة في العمود A إلى الرمادي تلقائيًا عندما يتم اختيار "نعم" في القائمة المنسدلة في العمود B.
نصائح وإرشادات إضافية:
- تأكد من أن نطاق التنسيق الشرطي في العمود A يتطابق مع منطقة البيانات ويتوافق مع مراجع العمود B. إذا خرجوا عن التزامن، قد لا يتم تطبيق التنسيق كما هو متوقع.
- عند نسخ أو تعبئة البيانات في الأعمدة، تحقق من أن المراجع (مثل B2) تتحديث بشكل مناسب.
- لتحقيق أفضل النتائج، قم بمسح أي تنسيقات قديمة من نطاقاتك قبل تطبيق قواعد جديدة.
- لإزالة تأثير التعتيم، قم بتغيير قيمة المشغل في العمود B أو حذف قاعدة التنسيق الشرطي.
- إذا كانت ورقة العمل مشتركة، تأكد من أن المستخدمين يعرفون القيم التي ستؤدي إلى تفعيل التنسيق.
إذا لم يعمل التنسيق الشرطي كما هو متوقع، تحقق من أن الخلايا في العمود B تحتوي تمامًا على القيم التي تقوم الصيغة باختبارها (بدون مسافات إضافية، وأحرف كبيرة صغيرة إن لم يكن يُستخدم التوافق الدقيق، وفحص ضد الأحرف المخفية).

اكتشف سحر Excel مع Kutools AI
- التنفيذ الذكي: قم بعمليات الخلية، وتحليل البيانات، وإنشاء المخططات - كل ذلك يتم من خلال أوامر بسيطة.
- الصيغ المخصصة: قم بإنشاء صيغ مصممة خصيصًا لتسهيل سير عملك.
- برمجة VBA: كتابة وتطبيق أكواد VBA بسهولة.
- تفسير الصيغ: فهم الصيغ المعقدة بسهولة.
- ترجمة النصوص: تجاوز الحواجز اللغوية داخل جداول البيانات الخاصة بك.
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 مع تفعيل نافذة الكود. يقوم الماكرو بتنقل كل صف في ورقة العمل الخاصة بك—بدءًا من الصف الثاني (بحيث يمكن أن يبقى الصف الأول كعنوان)—ويتحقق من العمود B للقيمة المشغلة (افتراضيًا، "نعم"). إذا وجدها، فإنه يملأ الخلية المقابلة في العمود A باللون الرمادي. إذا كانت القيمة المشغلة غائبة، يتم إزالة أي تعبئة رمادية سابقة (إعادة تعيين الخلية إلى المظهر الافتراضي).
يمكنك تخصيص المعلمات التالية في الكود:
- checkCol: العمود المراد التحقق منه (مثل "B")
- dataCol: العمود الذي سيتم تعتيمه (مثل "A")
- triggerValue: القيمة التي يتم التحقق منها لتعتيم الخلفية (مثل "نعم"، "مكتمل"، أي قيمة في قائمتك)
احتياطات ونصائح:
- هذا الماكرو يغير خلفيات الخلايا بشكل دائم. إذا كنت تريد أن تُحدث الألوان تلقائيًا عند تغيير البيانات، فكر في إعادة تشغيل الماكرو بعد أي تحديث أو استخدام كتابة حدث Worksheet_Change (للمستخدمين المتقدمين فقط).
- هذا النهج لا يتأثر بعدد الخلايا أو حدود قواعد التنسيق الشرطي، لذلك فهو مناسب للنطاقات الديناميكية الكبيرة أو الشروط المتعددة.
- إذا تم تشغيل الماكرو عن طريق الخطأ وتريد إزالة تعبئة الرمادي، ما عليك سوى تشغيله مرة أخرى بعد مسح أو تغيير القيم ذات الصلة.
- يمكنك توسيع جملة If لإضافة المزيد من الشروط (مثل التعتيم بناءً على اختيارات متعددة، أعمدة إضافية، أو منطق أكثر تعقيدًا).
استخدام VBA لتغميق الخلايا يدويًا أو تلقائيًا يوفر أكبر قدر من المرونة للحلول المعقدة أو على نطاق واسع أو مخصصة للغاية في Excel.
أفضل أدوات زيادة الإنتاجية لمجموعة Office
عزز مهاراتك في Excel مع Kutools لـ Excel، وتمتع بكفاءة غير مسبوقة. يقدم Kutools لـ Excel أكثر من300 ميزة متقدمة لتعزيز الإنتاجية وتوفير وقت الحفظ. انقر هنا للحصول على الميزة التي تحتاجها أكثر...
Office Tab يجلب تجربة التبويبات إلى Office، ويجعل عملك أسهل بكثير
- فعّل تحرير وقراءة المستندات عبر التبويبات في Word وExcel وPowerPoint
- افتح وأنشئ مستندات متعددة في تبويبات جديدة ضمن نفس النافذة، بدلاً من فتحها في نوافذ جديدة.
- يمنحك زيادة إنتاجية تصل إلى50% ويوفر عليك مئات النقرات يومياً!