الرئيسية / فيجوال بيزك / أكواد VBA مفيدة / كود لتلوين الخلية الفعالة – Active Cell
كود تلوين الخلية الفعالة
كود تلوين الخلية الفعالة

كود لتلوين الخلية الفعالة – Active Cell

السلام عليكم, هل وجدت نفسك يوماً تعمل على ورقة عمل اكسل ضخمة بحيث أنه كان صعباً عليك جداً تتبع البيانات المختلفة في الأسطر أو الأعمدة أو لربما كليهما أو أنك كنت تعاني لمعرفة مكان الخلية الفعالة (النشطة) – Active Cell بعد كل عملية بحث تقوم بها؟ إذا إليك هذا الحل البسيط. باستخدام كود فيجوال بيسك VBA بسيط سيمكنك من تلوين الخلية الفعالة (النشطة) – Active Cell مما سيسهل عليك تحديد مكانها بمجرد النظر إلى الشاشة لديك. خيار آخر, يمكنك تلوين سطر الخلية الفعالة – Active Cell وعمودها كذلك لتسهيل تتبع المعلومات فيهما. إليك ثلاثة أكواد لتختار منها. لنبدأ على بركة الله.

 

تلوين الخلية الفعالة – Active Cell:

تلوين الخلية الفعالة
تلوين الخلية الفعالة

فعِّل برنامج VBA بالضغط على Atl + F11 من لوحة المفاتيح لديك والصق الكود التالي في ورقة العمل التي تعمل عليها (التي تريد استخدام الكود فيها).

 

تلوين كامل سطر وعمود الخلية الفعالة – Active Cell:

تلوين كامل سطر وعمود الخلية الفعالة
تلوين كامل سطر وعمود الخلية الفعالة

يمكنك اسخدام الكود التالي في حال أردت أن تلوِّن كامل سطر وعمود الخلية الفعالة – Active Cell.

 

تلوين سطر وعمود الخلية الفعالة – Active Cell (النطاق مابين الخلية الفعالة و اسم السطر والعمود):

تلوين جزء من سطر وعمود الخلية الفعالة
تلوين جزء من سطر وعمود الخلية الفعالة

من خلال الكود التالي, يمكنك تلوين جزء من سطر وعمود الخلية الفعالة – Active Cell والواقع مابين الخلية الفعالة – Active Cell واسم السطر أو العمود.

 

طريقة اضافة الكود:

الأكواد الثلاثة اعلاه هي اكواد تضاف على مستوى صفحات العمل ولاتحتاج صفحة موديول Module. بعيداً عن التفاصيل, اتبع الخدوات التالية لاضافة أي من الأكواد اعلاه الى ورقة العمل لديك. في حال اردت استخدام الكود في اكثر من ورقة عمل, يجب عليك اذاً اضافة الكود كلك اوراق العمل لديك بنفس الطريقة التالية,

1- من تبويب ورقة العمل, نقرة يمين بالفأرة ومن ثم اختر اظهار الكود – View Code

اضافة كود تلوين الخلية
اضافة كود تلوين الخلية

 

2- ستظهر امامك نافذة برنامج جديد (غير اكسل) وإنما هي نافذة برنامج فيجوال بيزك VBA المضمنة في اكسل. ستجد امامك مساحة فارغة, انسخ الكود من الموضوع والصقه هناك واغلق نافذة VBA.

اضافة كود تلوين الخلية
اضافة كود تلوين الخلية

 

أنت جاهز الآن لاستخدام الكود. يمكنك الذهاب الى ورقة العمل خاصتك لتجربة الكود. في حال لم يعجبك الكود واردت حذفه, اعد الخطوات السابقة ولكن قم بحذف الكود من ضمن نافذة برنامج VBA (محرر VBA).

 

ملاحظات على عمل الأكواد السابقة:

  • جميع الأكواد السابقة تقوم بازالة التلوين من ورقة العمل قبل تطبيق الكود وإلا فإن ورقة العمل لديك ستمتلئ خلال دقائق بمجموعة كبيرة من الخلايا الملونة والتي ستُفقد الكود قيمته. إذ كلما غيرت موقع الخلية الفعالة الحالي, سيتلون الموقع الجديد (الخلية الجديدة). فإن لم تزل التلوين عن الموقع القديم قبل الإنتقال إلى الموقع الجديدة, فإن المزيد والمزيد من الخلايا سيتم تلوينها مراراً وتكراراً مما سيعقد منظر ورقة العمل ويجعل الكود غير ذي فائدة.
  • جرب أن تقوم بتحديد نطاق من الخلايا وانظر كيف يتفاعل كل من الأكواد السابقة مع النطاق المحدد. هل سيقوم الكود المستخدم بتلوين جميع الخلايا المحددة؟!! اترك الإجابة لك.
  • في حال كنت تلوِّن أسطر ورقة العمل لديك (أو الأعمدة) باستخدام التنسيق الشرطي – Conditional Formatting أو خاصية الجداول – Tables فإن الأكواد اعلاه ستعمل فقط على الخلايا الغير الملونة كما أن كود VBA لن يستطيع ازالة ألوان الخلايا الملونة إن وجدت (الملونة فقط عن طريق التنسيق الشرطي أو الجداول)
  • في حال أردت تلوين السطر فقط, يجب عليك فقط أن تزيل الجزء المتعلق بتلوين العمود. والأمر ينطبق كذلك على تلوين العمود فقط.
  • في حال أردت تغيير اللون المستخدم في الكود, كل ماعليك فعله هو أن تقوم بتغيير رمز اللون من الكود حسب الجدول المبين أدناه.
  • ملاحظة مهمة: يجب عليك التنبه إلى أنه وبمجرد استخدام هذا الكود, فإنك لن تستطيع التراجع عن التغييرات التي اجريتها على ورقة العمل أو حتى ملف العمل. السبب كالتالي, في حال لم تفعِّل الكود (بتغيير الخلية الفعالة) فلا مشكلة ولكن وبمجرد تغيير موقع الخلية الفعالة فإن اكسل سيعتبر هذا التغيير كآخر تغيير اجريته على ورقة العمل النشطة وباعتبار أن هذا التغيير كان سببه كود VBA وباعتبار أن اكسل لا يستطيع التراجع عن التغييرات التي تمت بواسطة اكواد VBA فبالتالي فإن اكسل لن يستطيع التراجع ايضاً عن التغييرات التي تمت قبل استخدام (تفعيل) الكود. لحل هذه المشكلة أو التحوط له, اتبع مايلي,
    • عليك أن تكون حذراً كيلا تقوم بأي تغيير على بياناتك التي تستخدم هذا الكود عليها.
    • اعمل نسخة اساسية عن ورقة العمل / ملف العمل الذي تعمل عليه. طبق التغييرات على هذا الملف الأساسي وليس الملف الذي تطبق الكود عليه.
    • عند اغلاق ملف العمل (الذي يحوي كود التلوين), تأكد من اختيار عدم حفظ التغييرات وذلك لتُرجع الملف إلى حالته التي كان عليها عندما فتحته.

 

تغيير اللون المستخدم في هذا الكود:

يمكنك استخدام أي لون من القائمة التالية. فقط استبدل رمز اللون في الكود. لاحظ أن القيمة 0 تعني لا لون.

قائمة ألوان VBA
قائمة ألوان VBA

 

ختاماً, هل اعجبتك فكرة عمل هذا الكود وهل هي مفيدة لك ولعملك اليومي؟ ارجو أن تشاركنا رأيك وتجربتك. إليك ملف توضيحي يحوي الأكواد الثلاثة أعلاه للتجربة.

 

مصادر الأكواد:

مصدر 1مصدر 2قائمة ألوان VB

عن Hussein.B

مؤسس ومدير موقع viaexcel.com, اعمل في مجال الإئتمان, مهتم بمواضيع التدريب وتطوير الذات بالإضافة لحبي الشديد لبرنامج اكسل.

36 تعليقات

  1. رااااااااااااااااااائع ممتاز نتمني دايما اكواد من ذوي الخبرة تسهل العمل والتركيز خاصة في شيتات العمل الكبيرة

  2. شكرا على المجهود الطيب … لو تكرمت اريد ان الون اخر سطر نشط

  3. علي الحوصلي

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

  4. بارك الله فيك
    كفيت ووفيت

  5. بالأخلاق نحيا

    السلام عليكم

    طيب لو سمحت محتاج كود تلوين عمود بالكامل بدل الصف

    ممكن الكود لو سمحت

    • وعليكم السلام. اعتذر عن تأخري بالرد. ممكن التنفيذ عن طريق استخدام نفس الكود لكن بحذف الجزء الثناي منه والمتعلق بتلوين السطر للخلية الفعالة.

  6. السلام عليكم
    شكرا جزيلا على المعلومات المفيدة
    برجاء اخبارى ما اذا كنت اريد تلوين خلية بعينها فى نطاق معين بلون معين فى حالة اذا كانت قيمتها اقل من الصفر مثلا

    شكرا

  7. السلام عليكم
    هل استطيع اعطاء لون لأي خلية يكتب عليها اتوماتيكيا , يعني عندي جدول للسنة كاملة اذا وضعت رقم او ملاححظة في اي يوم الايد ان يأخذ السطر أي اليوم كامل لون معين ..
    كيف ذلك ؟؟
    مع الشكر

  8. السلام عليكم …
    هل يوجد كود برمجي في الاكسل عند البحث في صحفة بواسطة Ctrl + F
    بحيث يظلل الخلية التي تم البحث عنها

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

    • مرحباً جمال. وعليكم السلام.

      فعلياً انت لا تحتاج لكود حيث يمكنك استخدام اداة البحث و الإستبدال (Find and Replace) (Ctrl + H) للبحث عن القيمة المطلوبة واستبدالها بنفس القيمة لكن مع تنسيق مختلف (يمكنك تغيير التنسيق عن طريق الضغط على زر خيارات Options). هل هذا الحل كافي لطلبك؟

  9. السلام عليكم ورحمة الله
    شكرا للمعلومات

    لدي كشف اضافي الموظفين , وخانات التجميع فيها الإضافي العادي والجمع والمرضية والإجازات والعطلة الأسبوعية
    استطعت بعد الإستعانة بالله والفيديوهات في اليوتيوب عمل التاريخ المرتبط باليوم

    وبمعادلة تلوين الأيام ( الجمع ) ايضا
    الأن بقى ان يكون العامود كله لونه حسب يوم الجمعة مختلف

    وايضا عندما يتغير اللون اريد معادلة جمع العطل الرسمية بناء على الجمع ان تحسب لوحدها
    شكرا

  10. عندى مجموعة من الارقام فى شيت اكسيل اريد تلوين الارقام التى جمعها تساوى ال 50 فقط مثال على ذلك للتوضيح

    10
    20
    20
    10
    اذا جمعنا الارقام 10+20+20 تساوى ال50 مع تلوين الخلية اذا امكن او اى علامة تدول على الارقام

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

  11. السلام عليكم
    عندى مجموعة من الارقام فى شيت اكسيل اريد منها تلوين الارقام التى جمعها تساوى 50

    برجاء المساعدة

  12. mohammed mohammed eisa

    thx all

  13. معمر محمد فدعوس محمد

    اشكركم جدا على هذا المجهود الرائع لاتعلمون مدى فرحتي بكم عندما ارى اناس من امثالكم ينيرون عقلونا بعلم المعرفة.وفقكم الله تعالى لما يرضاه

  14. الأكواد جميلة و انا جربتها بس في امرين بحاجة لتعديلهم
    1- عند الطباعة يبقى مفعل و تطبع الوان الكود و هو غير محبذ في العمل
    2- في صفحة الاكسل العادية ذات الجداول اليدوية ( دون خاصية الجداول )
    فإن الكود يلغي تنسيقا تعبئة الخلايا التي أدوس عليها
    ياريت تنحل المشكلتين دي وبصير الكود بعدها خطير
    —————————————–
    حاجة ثانية هل يوجد تلوين للخلايا التي أبحث عنها بالاكسل

  15. اخي الكريم اولا شكرا جزيلا على هذا المجهود ولكن عند تطبقي لهذه الاكواد على ملف عندي بها العديد من المعادلات والماكرو فانه يعمل ببطئ فاريد تحويل المعادلات والماكرو الموجود في الملف عندي الى اكواد vba حتى تكون اسرع ارجوا الافادة عن كيفية التحويل وشكرا

    • السلام عليكم. حياك الله أخي الكريم. سرعة تنفيذ المعادلات والأكواد في اكسل ترتبط بشكل مباشر بتعقيدها وكذلك بمواصفات جهازك. عموماً لايوجد طريقة محددة لتحويل معادلاتك الى اكواد وإنما يجب ان تكتب كل معادلة لديك بأكواد الفيجوال بيزك. بمعنى, ان تقوم بهذا التحويل يدوياً لعدم وجود اداة او طريقة تقوم به آلياً. تابع المثال التالي لمزيد من الايضاح.

      https://www.youtube.com/watch?v=DCXWHS-BL2w

أضف تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *