اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

كيف يتم التلوين التلقائي للصفوف


halwim

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

بسم الله الرحمن الرحيم

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

توجد في المرفق صفوف قمت بتلوينها يدويا - المطلوب أن يتم التلوين بشكل تلقائي يعني بمجرد وضع رقم (1) مثلا في أي صف من العمود (A) يتحول لون صف الجدول إلى اللون الأحمر وهكذا إذا وضعنا رقم (2) يتحول إلى اللون الأخضر وإذا وضعنا رقم (3) يتحول الى اللون الأزرق، كما هو موضح في هذه الألوان، ولكن نريد تطبيق هذه الفكرة على باقي الجدول بصورة آلية .

المطلوب بشكل أوضح في المرفق أرجو التعديل عليه وشكرا.

تحياتي

color_auto.rar

رابط هذا التعليق
شارك

يتم ذلك عن طريق الكود التالي:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error Resume Next

TC = Target.Column
TR = Target.Row
T = Target

If TC = 1 And TR > 1 And TR < 31 Then

For C = 1 To 6

If T = "" Then Cells(TR, C).Interior.ColorIndex = xlNone
If T = 1 Then Cells(TR, C).Interior.ColorIndex = 3
If T = 2 Then Cells(TR, C).Interior.ColorIndex = 50
If T = 3 Then Cells(TR, C).Interior.ColorIndex = 41

Next
End If

End Sub

________________.rar

  • Like 1
رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

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

ماشاء الله تبارك الله ..... أستاذ علي السحيب

ألف شكر وتحية لك ،،،،،،،،، الله يجعل جميع مساعداتك فى ميزان حسناتك .

بس عندي ملاحظة / ضع رقم 1 مثلا في الخلية A2 ورقم 2 في الخلية A3 سوف تتلون الصفوف وهذا هو المطلوب ولكن بعد ذلك جرب حدد الخليتين A2 و A3 معا في وقت واحد ثم إضغط زر دليت سوف تلاحظ أن صف رقم 2 تحول إلى اللون الأزرق !! لماذا ؟

أرجو التعديل وشكرا جزيلا

تحياتي

رابط هذا التعليق
شارك

تم إضافة التعديل اللازم على الكود:

Private Sub Worksheet_Change(ByVal Target As Range)

On Error GoTo Ali

TC = Target.Column
TR = Target.Row
T = Target

If TC = 1 And TR > 1 And TR < 31 Then

For C = 1 To 6

If T = "" Then Cells(TR, C).Interior.ColorIndex = xlNone
If T = 1 Then Cells(TR, C).Interior.ColorIndex = 3
If T = 2 Then Cells(TR, C).Interior.ColorIndex = 50
If T = 3 Then Cells(TR, C).Interior.ColorIndex = 41

Next
End If
Exit Sub

Ali:
If Err <> 0 Then Selection.EntireRow.Interior.ColorIndex = xlNone

End Sub

________________.rar

رابط هذا التعليق
شارك

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

ألف شكر وشكر على التعديل ،،،،،،،،،،، أستاذي الفاضل أبا حسين

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

فمثلا عندما يبدء المستخدم من صف معين وليكن أي صف فبمجرد أن يكتب أي شيء فيه يتحول لونه إلى أحمر مثلا ثم إذ ا كتب في الصف الذي بعده يبقى بدون لون

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

وللمعلومية سبق أن رأيت هذه الفكرة في هذا المنتدى معموله بأكسس .

أتمنى يكون لديكم حل لهذه الفكرة وشكرا

تحياتي

رابط هذا التعليق
شارك

الصيغتان التاليتان في التنسيق الشرطي يقومات بهذه المهمة:

هذه الصيغة تعمل مع الصفوف الفردية:

=AND($A1<>"",MOD(ROW(),2)=1)
وهذه الصيغة تعمل مع الصفوف الزوجية:
=AND($A1<>"",MOD(ROW(),2)=0)

وإذا أردنا أن يكون الصف التالي بدون تنسيق نستخدم صيغة واحدة فقط من الصيغتان المُشار إليهما.

أرجوأ أن يكون هذا ما تريد،

___________________________________________.rar

رابط هذا التعليق
شارك

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

أستاذ علي ، شكرا لك على هذا العطاء والأداء المتميز،،،،،،،،

الطريقة هي هي هي عين المطلوب ،،،،،،،،

فقط أريد معرفة مكان وجود الكودين المذكورين (لتلوين الصفوف الفردية والزوجية) ، فتحت الملف و بحثت عن الأكواد في محرر الفيجول فلم أجد شيء حاولت التطبيق من خلال وضع الكود في شريط الصيغة فلم ينفع .

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

شكرا لكم

تحياتي

رابط هذا التعليق
شارك

الصيغتان التاليتان في التنسيق الشرطي يقومات بهذه المهمة:

هذه الصيغة تعمل مع الصفوف الفردية:

=AND($A1<>"",MOD(ROW(),2)=1)
وهذه الصيغة تعمل مع الصفوف الزوجية:
=AND($A1<>"",MOD(ROW(),2)=0)

وإذا أردنا أن يكون الصف التالي بدون تنسيق نستخدم صيغة واحدة فقط من الصيغتان المُشار إليهما.

أرجوأ أن يكون هذا ما تريد،

رابط هذا التعليق
شارك

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

شكرا لك على المرور والتنبيه ،،،،،،،

والله لا أدري كيف غاب عن ذهنى ، التنسيق الشرطي سبحان الله !!

بالنسبة لإستفساراتي السابقة :

كيف أوسع نطاق الصف بحيث يمتد في نطاق عشر خلايا يتكون منها الصف مثلا

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

رقم (65536) ألا يوجد طريقة أسهل لتعميم عمل الكود على كامل الورقة ؟؟

أيضا حاولت البحث عن مكان بالكود لكي أضع فيه رقما يمثل صف كامل من يمين المستند إلى يساره فلم أرى موضع يناسب ذلك ؟؟

ثم أني ركزت محاولا فهم الكود ، وعلاقته بدالة الباقي من القسمة mod والفراغ المقوس في الدالة row فلم أستوعب العلاقة .

تحياتي

رابط هذا التعليق
شارك

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

رقم (65536) ألا يوجد طريقة أسهل لتعميم عمل الكود على كامل الورقة ؟؟

1- قم بتظليل الخلايا التي تحتاجها من الصف الأول والتي تم تطبيق التنسيق الشرطي عليها ثم أنسخها.

2- قم بتضليل الخلايا المقابة لها من الصف الثاني.

3- إضغط على Shift + Ctrl وأضغط على السهم السفلي مرتين وسيتم إختيار كامل الصفحة.

4- إضغط على المنطقة المضللة بزر الفأرة الأيمن وأختر لصق خاص ثم لصق التنسيق.

وبهذا سوف يتم نسخ التنسيق على كامل الخلايا.

ثم أني ركزت محاولا فهم الكود ، وعلاقته بدالة الباقي من القسمة mod والفراغ المقوس في الدالة row فلم أستوعب العلاقة .

الصيغة التالية تعطيك رقم الصف الذي توجد به الصيغة:

=ROW()

الصيغة الأولى في التنسيق الشرطي تقوم بقسمة رقم الصف على 2 .. وتستخرج الباقي .. فإذا كان رقم الصف فردي فإن الباقي سوف يكون 1 .. وبهذا يتحقق الشرط .. وإذا كان رقم الصف زوجي سوف يكون الباقي 0 ..وبهذا لن يتحقق الشرط.

والعكس صحيح بالنسبة للصيغة الثانية،

رابط هذا التعليق
شارك

لا أملك سوى الدعاء لك بالجنة والمغفرة والرضوان .

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

ألا يمكنكم تحويل الصيغة إلى كود ، بحيث يبقى التنسيق الشرطي متاحا بالثلاثة شروط ؟؟

شكرااا مقدما

تحياتي

رابط هذا التعليق
شارك

لا أملك سوى الدعاء لك بالجنة والمغفرة والرضوان .

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

ألا يمكنكم تحويل الصيغة إلى كود ، بحيث يبقى التنسيق الشرطي متاحا بالثلاثة شروط ؟؟

شكرااا مقدما

تحياتي

المعذرة على كثرة الإستفسارات ،،،،،،،،،،

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

وشكرا

رابط هذا التعليق
شارك

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

ألا يمكنكم تحويل الصيغة إلى كود ، بحيث يبقى التنسيق الشرطي متاحا بالثلاثة شروط ؟؟

شاهد المرفق والذي يحتوي على الكود التالي الذي يمكنك من تحديد 11 حالة أو أكثر للتنسيق الشرطي:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim MyRange As Range
Dim Cell As Range

Set MyRange = [B3:F15]
For Each Cell In MyRange

If Cell = "Ali" Then Cell.Interior.ColorIndex = 5
If Cell = "Sameer" Then Cell.Interior.ColorIndex = 10
If Cell = "Mhmed" Then Cell.Interior.ColorIndex = 15
If Cell = "Saleh" Then Cell.Interior.ColorIndex = 20
If Cell = "Hassan" Then Cell.Interior.ColorIndex = 25
If Cell = "Hamad" Then Cell.Interior.ColorIndex = 30
If Cell = "Khalid" Then Cell.Interior.ColorIndex = 35
If Cell = "Moneer" Then Cell.Interior.ColorIndex = 40
If Cell = "Mahdi" Then Cell.Interior.ColorIndex = 45
If Cell = Date Then Cell.Interior.ColorIndex = 50
If Cell = "Yousef" Then Cell.Interior.ColorIndex = 55

Next

End Sub
كثيرا ما أرى الدالة AND في كثير من الصيغ ولا أعرف وظيفتها ولماذا تستخدم ، لذلك أرى من المناسب شرحها بإعطائنا مثال، وليكن ذلك المثال هو الصيغة التي وضعتموها للتلوين التلقائي أعلاه .
AND .. تعني و .. وهي تستخدم لدمج شرطين أو أكثر حتى 32 شرط .. لتحقق نتيجة معينة .. كأن نقول :: إذا كان الجنس ذكر وإذا كان العمر أكبر من أو يساوي 18 .. فالنتيجة (يستحق مكافأة) - وإلا فإنه (لا يستحق مكافأة) ..كما في الصيغة التالية:
=IF(AND(A4="ذكر",B4>=18),"يستحق مكافأة","لا يستحق مكافأة")

Conditional_Formatting_in_VBA.rar

تم تعديل بواسطه علي السحيب
رابط هذا التعليق
شارك

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

أخي أستاذعلي السحيب تحياتي الكثيرة لك ،،،،،، شكرا على إيضاح الدالة AND .

شاهد المرفق والذي يحتوي على الكود التالي الذي يمكنك من تحديد 11 حالة أو أكثر للتنسيق الشرطي:

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

هذا مقصودي ، وإن كان الكود المذكور يؤدي هذا أتمنى لو تعطينا القليل من وقتك الثمين لشرح كيفية ذلك .

تحياتي

رابط هذا التعليق
شارك

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

ولتوضيح أكثر .. حدد لي الشروط التي لديك (أكثر من 3 شروط) وسأقوم بتطبيقها لك عن طريق الكود.

رابط هذا التعليق
شارك

أستاذي الفاضل مع غض النظر عن الكود الذي يعمل الزيادة للتنسيقات ،

هل يمكن جعل هذه الصيغة :

=AND($A1<>"",MOD(ROW(),2)=1)

أن تعمل ضمن كود يوضع في محرر الفيجول ؟؟ أو هل يمكنم إنشاء كود يقوم مقامها تماما ؟؟

ولعلك لازلت تتذكر الكود الذي وضعت في المرفق الموجود بالمشاركة رقم (5) من هذا الموضوع ، فهو كود ومع ذلك يقوم بتغير الألوان .

تحياتي

تم تعديل بواسطه halwim
رابط هذا التعليق
شارك

الكود التالي يقوم بعملية التنسيق الشرطي كما في مشاركتي الأولى في هذا الموضوع .. ولكن هذه المرة يتم التنسيق الشرطي عن طريق الكود وليس عن طريق الصيغ كما في المشاركة المُشار إليها:

Private Sub Worksheet_Change(ByVal Target As Range)

TR = Target.Row

Application.ScreenUpdating = False

If Cells(TR, 1) <> "" And Cells(TR, 1).Row Mod 2 = 0 Then
  For C = 1 To 7
    Cells(TR, C).Interior.ColorIndex = 34
    Cells(TR, C).Font.ColorIndex = 41
    Borders
  Next

ElseIf Cells(TR, 1) <> "" And Cells(TR, 1).Row Mod 2 = 1 Then
  For C = 1 To 7
    Cells(TR, C).Interior.ColorIndex = 41
    Cells(TR, C).Font.ColorIndex = 34
    Borders
  Next

Else
  For C = 1 To 7
    Cells(TR, C).Interior.ColorIndex = xlNone
    NonBorders
  Next

End If

Application.ScreenUpdating = True

End Sub

شاهد المرفق،

___________________________________________.rar

تم تعديل بواسطه علي السحيب
رابط هذا التعليق
شارك

السلام عليكم

بالنسبة للمرفق الأخير ،

يفتح الملف بشكل عادي ولكن بمجرد الكتابة في أي خلية تخرج رسالة فيها زرين : موافق و تعليمات ، وعند الضغط على زر موافق يفتح محرر الفيجول بيسك وفيه سطر مضلل بالأصفر هو :

Private Sub Worksheet_Change(ByVal Target As Range)

وسطر صغير مضلل بالأزرق هو هذه الكلمة فقط : Borders

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

هذا بالنسبة للملاحظ على المرفق الأخير ،،،،،،،

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

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

تحياتي

رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

الاخ halwim

بعد التحية

قم بأعادة تحميل الملف مرة اخرى

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

تحياتى لك

رابط هذا التعليق
شارك

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

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

شاهد المرفق،

___________________________________________.rar

تم تعديل بواسطه علي السحيب
رابط هذا التعليق
شارك

بسم الله الرحمن الرحيم

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

أستاذنا الفاضل .... أباحسين ،

ماشاء الله تبارك الله ،

أربع طرق لتلوين الصفوف تلقائيا ، وفي ملف واحد ............. نعم هذا هو ما كنت أتمناه بالظبط سلمت يداك .

بالنسبة للصيغة ممكن إيضاح عمل الدالة COUNTA أو شرح الصيغة معها ؟

=AND(COUNTA(1:1)>0;MOD(ROW();2)=1)
مع بيان الفروقات بينها وبين الصيغة التالية يعني مالفرق بين الصيغتين :
=AND(COUNTA($A1:$G1)>0;MOD(ROW();2)=1)

تحياتي .

تم تعديل بواسطه halwim
رابط هذا التعليق
شارك

الدالة COUNTA تقوم بحساب عدد الخلايا الغير فارغة في معيار معين سواء كانت تلك الخلايا تحتوي على أرقام أو حروف.

بالنسبة لإستخدام الدالة المذكورة في الصيغة الأولى فهي تقوم بحساب عدد الخلايا الغير فارغة في الصف بأكمله .. فإذا كانت أكبر من 0 .. فهذا يعني أن الشرط قد تحقق.

أما بالنسبة للصيغة الثانية فهي تقوم بحساب عدد الخلايا الغير فارغة من العمود A وحتى العمود G فقط.

رابط هذا التعليق
شارك

  • 3 weeks later...

بسم الله الرحمن الرحيم

السلام عليكم ورحمة الله ،،

أستاذي الكبير ،، أبا حسين تحياتي لك

طرأ على ذهني فكرة أود الإستفسار بخصوصها ، لاحظت أن الصفوف التي يتم تلوينها عن طريق الكود

هي إلى حدما تشبه التلوين اليدوي من خلال تنسيق خلايا ثم نقش (لون الخلفية) بودي أن أعرف حقيقة

عمل الكود هل هو يقوم بنفس الفكرة من خلال ضغط زر الماوس الأيمن ثم اختيار "تنسيق خلايا" ،

ثم اختيار التبويب " نقش " بحيث يتم ذلك نيابة عن المستخدم بالكود ؟

ثم مالفرق بين تلوين الكود وبين التلوين اليدوي من " تنسيق خلايا " ؟

وزبدة المقال : وجدت طريقة تقوم بالتلوين وبوظائف ربما تكون أكثر شمولية من الكود ومن "تنسيق خلايا "

هذه الطريقة يمكن تطبيقها من خلال تحدي الصفوف المراد تلوينها ، ثم من قائمة " تحرير " اختر "بحث"

أوضغط ctrl+f ثم اختر تبويب " استبدال " ثم اختر الزر " تنسيق " أو إضغط على السهم الصغير

الموجود في حافة هذا الزر وسترى خيارين " تنسيق " و " اختيار التنسيق من الخلية " وهناك خيارات يمكن

تطبيقها على أي جزء من المستند في لحظات دون تعب وعناء .

بقي أن اسأل هل الكود مصمم على الإستفادة من هذه الطريقة ؟ بحيث يبحث عن أي تنسيق تلقائي ويستبدله بتنسيق ملون ؟

تحياتي

رابط هذا التعليق
شارك

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

زائر
اضف رد علي هذا الموضوع....

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

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

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

Important Information