اذهب الي المحتوي
أوفيسنا

الردود الموصى بها

قام بنشر

السلام عليكم

لدي جدول اريد حساب عدد  الخليات لكل لون بكل عامود وتسجيل العدد  جانب اللون من الاعلى

ولكم جزيل الشكر

111.xlsm

قام بنشر
43 دقائق مضت, amen bakr said:

السلام عليكم

وعليكم السلام ورحمة الله وبركاته ,,

طبعاً قبل البدء بطرح الحل ، وجب التنبيه إلى ضرورة أن تكون الأرقام في الخلايا التي بها اللون تطابق نفس اللون للخلايات التي سيكون لها التعداد ..

الدالة بسيطة كالتالي ضعها في مديول ..

Function CountByColor(rng As Range, clr As Range) As Long
    Dim c As Range
    Dim cnt As Long
    cnt = 0
    For Each c In rng
        If c.Interior.Color = clr.Interior.Color Then
            cnt = cnt + 1
        End If
    Next c
    CountByColor = cnt
End Function

 

ثم الإستدعاء بالشكل التالي مع حرية تحديد النطاق وخلية اللون :-

=CountByColor(B7:B100, A2)

 

الملف بعد التطبيق :-

111.xlsm

قام بنشر (معدل)

السلام عليكم وجزاكم الله خيرا استاذي الكريم 

ولكن لدي مشكله اذا اضفت خلايا للعامود بدون تسجيل قيمه بداخلها فانه يقوم بحساب الخلايا الفارغه ايضا كيف يمكن ان اجعله لا يحسب الخلايا الفارغه ايضا عند تلوين خليه باللون لا يظهر العدد الا عند الضغط على سطر الاوامر ليقوم بالتنفيذ ولا يقوم بالتنفيذ مباشر

تم تعديل بواسطه amen bakr
اضافه ملاحظات
قام بنشر
26 دقائق مضت, amen bakr said:

لكن لدي مشكله اذا اضفت خلايا للعامود بدون تسجيل قيمه بداخلها فانه يقوم بحساب الخلايا الفارغه ايضا كيف يمكن ان اجعله لا يحسب الخلايا الفارغه ايضا عند تلوين خليه باللون لا يظهر العدد الا عند الضغط على سطر الاوامر ليقوم بالتنفيذ ولا يقوم بالتنفيذ مباشر

لم أفهمها بالضبط ..

تقصد أنه لو جعلنا مثلاً الخلية B17 باللون الأحمر ولكنها فارغة من غير قيمة ، فإن الوضع الحالي سيحسب عددها مع الخلايا باللون الأحمر . وأنت تريد أن يقوم بالعد إذا كانت الخلية غير فارغة ؟؟؟؟؟

 

أرجو التوضيح بشكل أكثر

قام بنشر

بكل الأحوال .. إن كان ما سبق صحيح ، فقط علينا إضافة شرط للجملة الشرطية بحيث تصبح :-

If c.Interior.Color = clr.Interior.Color And Trim(c.Value) <> "" Then

بداً من :-

If c.Interior.Color = clr.Interior.Color Then

 

  • Like 1
قام بنشر

نعم استاذي الكريم

الخليه الفارغه لا اريد احتسابها 

ابضا عند تعيير لون الخليه اوة اضافه خليه جديده للعامود فانه لا يقوم بتعديل نتيجه الالوان  

وشكرا للمساعده

قام بنشر
الان, amen bakr said:

نعم استاذي الكريم

الخليه الفارغه لا اريد احتسابها 

ابضا عند تعيير لون الخليه اوة اضافه خليه جديده للعامود فانه لا يقوم بتعديل نتيجه الالوان  

وشكرا للمساعده

أخوي الكريم ، أرجو منك كتابة كافة طلباتك ، حتى لا نجر بعضنا من طلب إلى آخر 😅

قام بنشر

استاذي الكريم 

اعتذر عن الاطاله ولكن عند التعديل  طهرت المشاكل الجديده وهذه تخر طلب استاذي الكريم وجزاك الله خيرا

قام بنشر
3 دقائق مضت, amen bakr said:

طهرت المشاكل الجديده وهذه تخر طلب

طيب ايش هي المشاكل ,,

انت الآن طلبك كالآتي :-

1. حساب عدد الخلايا الغير فارغة لكل لون في الأعمدة . صحيح ؟؟

 

الآن المشاكل التي تقصدها :-

1. عند تغيير لون الخلية لا يتم تحديث القيم في أعداد الخلايا التي كتبنا فيها المعادلات ، صحيح ؟

يعني انت تريد عند التغيير للون أي خلية ، أن يتم التعديل مباشرة في أعداد الألوان في الأعمدة ؟؟؟؟؟؟؟؟؟؟؟؟؟

وهنا المشكلة أخي الكريم .. فتغيير اللون ليست حدث أو قيمة يشعر بها آكسل للأسف :blink:

وبالتالي لن يتم تحديث التعداد إلا إذا !!!!!!

في حدث عند التحديث للورقة ، كالتالي :-

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Application.Calculate
End Sub

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

 

خلاف ذلك لا اعتقد ان ذلك ممكن .

  • Like 1
قام بنشر

كل الشكر استاذي الكريم

ارجوك تحملني على اسئلتي

قمت بتغيير لون من الالوان الى بلا تعبئه ولكن ظهرت الخلايا الفارغه ايضا بالحساب

112.xlsm

قام بنشر

عذراً على المتابعة ..

فخبرتي في اكسل ليست قوية بما يكفي 😅

حتماً سنجد هنا قامات واسماء لها خبرة أكثر مني :wub: 

  • Like 1
قام بنشر (معدل)

جزاك الله خيرا استاذي الكريم

لم تقصر ابدا في مساعدتنا وفقك الله الى كل خير 

واسف مره اخرى على كثره الاسئله

,ولكن حاجتي الى الملف ادت الى ذلك

تم تعديل بواسطه amen bakr
  • Like 1
قام بنشر (معدل)

السلام عليكم

 الحل  في Function CountByColor(rng As Range, clr As Range) As Long
  كما اقترح عليك استاذتا  Foksh  في رده هذا

4 ساعات مضت, Foksh said:

بكل الأحوال .. إن كان ما سبق صحيح ، فقط علينا إضافة شرط للجملة الشرطية بحيث تصبح :-

If c.Interior.Color = clr.Interior.Color And Trim(c.Value) <> "" Then

بداً من :-

If c.Interior.Color = clr.Interior.Color Then

 

الملف

112.xlsm

تم تعديل بواسطه عبدالله بشير عبدالله
  • Thanks 1
قام بنشر

كل الشكر للاساتذه الكرام

استاذ عبد الله 

عند تغيير اي خليه الى لون لا يتغير  مجموع اللون في الاعلى بشكل تلقائي ارجو ان اكون اوضحت مثلا العمود j 

110.xlsm

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

    • لايوجد اعضاء مسجلون يتصفحون هذه الصفحه
×
×
  • اضف...

Important Information