عد الخلايا الملونة في الإكسيل
السلام عليكم و رحمة الله و بركاته
كما نعلم جميعا أن دوال العد في الإكسيل و التي عددها خمسة دوال :
تقوم بالعد بناء على قيمة الخلية و طبيعة محتواها و لا يوجد من هذه الدوال ما يقوم بعد الخلايا بناء على لونها, رغم حاجتنا لهذه المعادلة إلا أنها لم تضاف في معادلات الإكسيل, و لحل هذه النقطة نقوم بتعريف معادلة خاصة بها من خلال :
VBA
Visual Basic for Application
و هي تعرف بإسم
UDF
User Defined Function
و لعمل ذلك سنتبع الخطوات التالية :
- من شاشة الإكسيل سنقوم بالضغط على Alt + F11
- من تاب Insert نختار Module , و للإطلاع على الخطوات بشكل أكبر شرح تفصيلي لإضافة الكود
- و ستظر لنا الشاشة التالية :
هنا سنقوم بكتابة الكود التالي:
Function COUNTCOULREDCELLS(CriRange As Range, MCri As Range) As Long
Dim c As Range
Dim CountC As Long
Application.Volatile
For Each c In CriRange
If c.Interior.ColorIndex = MCri.Interior.ColorIndex Then
COUNTCOULREDCELLS = COUNTCOULREDCELLS + 1
End If
Next c
End Function
ستكون بالشكل التالي
وبعد كتابة الكود نقوم بإلاق شاشة البرمجة و العودة مرة أخرى لصفحة الإكسيل و ذلك بالضغط على Alt + F11
بعمل مثال بسيط كالتالي :
النقطة رقم 1 تمثل البيانات و التي تحتوي الخلايا الملونة
النقطة رقم 2 تمثل المعيار الذي سنحدده لعد الخلايا المشابهه
النقطة رقم 3 تمثل المعادلة التي قمنا ببرمجتها و تمثل الجزء الأول النطاق الي سنحدده و هو في مثالنا من $B$2:$B$10
و المتغير الثاني و يمثل المعيار و هو الخلية التي تحتوي اللون الذي سنقوم بالعد بناء عليه
=COUNTCOULREDCELLS($B$2:$B$10,D3)
لتحميل الملف من خلال الرابط من هنا
أتمنى أن تكون الفكرة قد إتضحت لكم.
دمتم في حفظ الله
يحيى حسين
Excel MVP
معلومه ودالة جدا جميلة اشكرك استاذ يحيى
ردحذفلكن انا طبقت الخطوات معك
وضبطت معي الحساب
لكن اذا غيرت لون خانه لا يرضى ان يحسب الا بعد ان اعمال تحديث للخانه
هل من طريقة للحساب تلقائي بعد التعديل مباشرة|؟؟
تحية طيبة يا كبير
ردحذفرائع جدا جدا كم أحتاج هذا الكود
ملاحظة أستاذي ... الكود لا يعمل مع التلوين بالتنسيق الشرطي
تحياتي