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

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

قام بنشر

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

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

توجد في المرفق صفوف قمت بتلوينها يدويا - المطلوب أن يتم التلوين بشكل تلقائي يعني بمجرد وضع رقم (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