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

كود لتغيير لون خلية ...كيف يتم تنفيذ هذا الكود على عمود كامل أو مجموعة خلايا محددة


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

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

مما لا شك فيه انني ادين الى هذا المنتدى بالشكر والعرفان  ان ساعدني ان  اصل الى ما انا فيه  في مجال المعادلات

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

وها انا ابدء معكم

وها محاولة بسيطة مني لتعلم الاكواد

قمت بعمل كود يتم تغيير اللون في الخلية اذا تم تنفيذ الشرط

وانا وضعت الشرط مثلا رقم 9 اذا تم كتابته في الخلية رقم a1 يتغير لن الخط الى الاحمر

ولكن واجهتني مشكلة وهي

كيف يتم تنفيذ هذا الكود على عمود كامل او مجموعة خلايا محددة؟!

'====================
'هذا الكود يوضع في حدث الصفحة وسينفذ في خلية
'a1
'محمد أبو البراء 16/6/2014
'====================
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'هذا السطر يجعل كل ما يكتب في الخلية بالون الاسود
 Range("A1").Font.Color = fff
 'هذا السطر يجعل الخلية باللون الاحمر اذا تم الشرط وهو رقم 9
If Range("A1") = "9" Then Range("A1").Font.Color = -16776961
End Sub

تلوين خلية اذا نفذ الشرط.rar

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

اخى الشهابى

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

----------------------

الموضوع بسيط جدا

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

الجمل التكراريه

على العموم

استخدم الكود الاتى

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'åÐÇ ÇáÓØÑ íÌÚá ßá ãÇ íßÊÈ Ýí ÇáÎáíÉ ÈÇáæä ÇáÇÓæÏ
 Range("A1").Font.Color = fff
 'åÐÇ ÇáÓØÑ íÌÚá ÇáÎáíÉ ÈÇááæä ÇáÇÍãÑ ÇÐÇ Êã ÇáÔÑØ æåæ ÑÞã 9
LR = [A10000].End(xlUp).Row
 Range("A1:A" & LR).Font.Color = fff

X = 3
For H = 1 To LR
If Cells(X, 1) = 9 Then Cells(X, 1).Font.Color = -16776961
X = X + 1
Next

End Sub

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

السلام عليكم

 

مثل هذا الكود لا يحتاج جمل تكرارية يحتاج فقط تعيين النطاق

 

مثلا للعمود A

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = [A1].Address Then
    If Target.Value = 9 Then
        Columns(1).Font.Color = -16776961
    Else
        Columns(1).Font.Color = 0
    End If
End If
End Sub

تحياتي

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

بارك الله فيك استاذ عبد الله باقشير حل رائع وفكرة ممتازة

ولكنها لم تودي الغرض فهي تشترط ان يكون الخلية a1 = 9 ليتم التنفيذ

وهذا ما لا اقصده

2 ) ما المقصود بهذا السطر

If Target.Address = [A1].Address Then

وخصووصا هذه الكلمة

Address

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

بارك الله فيك استاذ عبد الله باقشير حل رائع وفكرة ممتازة

ولكنها لم تودي الغرض فهي تشترط ان يكون الخلية a1 = 9 ليتم التنفيذ

وهذا ما لا اقصده

2 ) ما المقصود بهذا السطر

If Target.Address = [A1].Address Then

وخصووصا هذه الكلمة

Address

 

عنوان

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

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

استاذنا الكبير // عبد الله

شكرا جزيلا لك

وللعلم ما كان هذا قصدي معناها لكن قصدي فائدتها

الاستاذ الفاضل الحبيب // ابراهيم أبو ليلة

شكرا جزيلا لك

لقد استفدت من كلمتك ( الجمل التكرارية ) وتعلمت ما فائدتها والحمد لله

تم التنفيذ عملي على ما اردته

وحاولت ان اصل الى الكود بابسط الطرق واسرعها

فكان الناتج هذا الكود

اتمنى التقييم

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
For m = 1 To 100
If Cells(m, 1) = 9 Then Cells(m, 1).Font.Color = -16776961
If Cells(m, 1) <> 9 Then Cells(m, 1).Font.Color = fff
Next m
End Sub

الحلقات التكرارية - تلوين الخلية بشرطbraa.rar

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

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

 

الاخ الفاضل / محمد ابو البراء .............هداك الله

 

ان اكواد الحدث التلقائي يجب ان يقيد عملها في اطار النطاق الذي تريد العمل عليه ولا تكون مفتوحة على الغارب

ويجب ان تختار كود الحدث المتاسب في المكان المناسب

 

في كودي السايق قيدت العمل في خلية واحدة وهي A1

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

يعني استخدمت هذا الحدث Worksheet_Change  وليس هذا الحدث Worksheet_SelectionChange

 

وقد اخبرتك ان مثل طلبك لا يحتاج الى حلقة تكرارية

 

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

وانت الان تريد الغمل على النطاق  A1:A100

 

وهذا تعديل الكود:

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("a1:a100")) Is Nothing Then
    If Target.Value = 9 Then
        Target.Font.Color = -16776961
    Else
        Target.Font.Color = 0
    End If
End If
End Sub


وسؤالي لك

هل تريد ان تعمل كود او تريد تتعلم كيف تعمل كود ؟؟؟

 

تحياتي

الحلقات التكرارية - تلوين الخلية بشرطbraa.rar

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

استاذنا العزيز القدير عبد الله باقشير

هل السطر

If Target.Value = 9 Then

يساوى

if range"a1".value =9

ام ان هناك فرق ومن علمكم نتعلم ونستفيد

 

 

مثل ما شرحت اعلاه اذا تم تقييد العمل على الخلية A1

يصبح  Target  هو الخلية A1

ويصبح السطرين الذي ذكرتهم هما نفس التعبير

 

تحياتي

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

الاستاذ الفاضل والعلامة الكبير // عبد الله باقشير

1 ) اعتذر قبل اي شي ان وصلك عني  سوء للفهم

2 ) ما يتضح من مشاركتي انني اريد التعلم

3 ) سامحني أخي الفاضل فانا لم افهم الفروق بين الاكواد

واحاول الان ان اسلك طريق الاكود

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

ونفذت بها بعض الاكواد من عقلي

وهي

كود التقديرات للطلاب

وكود اخفاء صف بشرط معين

وهذا الكود في المشاركة رقم 7

4 ) هل معنى كلامك هذا ان الكود في المشاكة رقم 7 فيه خطأ

انتظر الرد بشغف علامتنا الكبير

وسامحنا ان كان منا اي تقصير...

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

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

 

ليس هناك شي لتعتذر منه من الاساس وانا اردت فقط توجيهك الى الطريق الصحيح

واذا كنت تعلمت الحلقات التكرارية فهذا شي كبير فأغلب الاعمال تتم بها

 

اما عن كودك اعلاه ساعطيك فيه 5 درجات لانه ينفذ ما تريده

وساخصم 5 درجات للاسباب التالية:

 

1- لم تستخدم الحدث المناسب

2- لم تقيد عمل الكود على نطاق معين فهو يعمل على جميع خلايا الورقة

3- استخدام الحلقة التكرارية بدون داعي

 

النتيجة 5 من 10

 

تحياتي

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

الاستاذ الكبير // عبد الله باقشير

1 ) لي كبير الشرف ان اتقيم من مثلكم

2 ) واما التقيم ب 5 درجات فهي ان كانت من مثلكم فهي عندي بمثابة 5 مليون

3 ) بالنسبة لعدم استخدام الحدث المناسب

فجزاك الله خيرا هذا هو الخيط الثاني لي  لتعلم الاكواد وهو تعلم ( الاحداث المناسبة )

4 ) اما بالنسبة للنقطة رقم 2 وهي لم تقيد عمل الكود على نطاق معين فهو يعمل على جميع خلايا الورقة

فسامحني استاذي فهي تعمل عل نطاق معين وانا محدده وهو من الخلية a1  الى الخلية  a100 

For m = 1 To 100

5 )

3- استخدام الحلقة التكرارية بدون داعي

طيب استاذي

ممكن تعطيني اي الاكواد المفضلة لعمل هذا غير الحلقات التكرارية لاتعلم كيفية تنفيذها _ بارك الله فيك_

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

الاستاذ الفاضل والعلامة الكبير // عبد الله باقشير

1 ) اعتذر قبل اي شي ان وصلك عني  سوء للفهم

2 ) ما يتضح من مشاركتي انني اريد التعلم

3 ) سامحني أخي الفاضل فانا لم افهم الفروق بين الاكواد

واحاول الان ان اسلك طريق الاكود

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

ونفذت بها بعض الاكواد من عقلي

وهي

كود التقديرات للطلاب

وكود اخفاء صف بشرط معين

وهذا الكود في المشاركة رقم 7

4 ) هل معنى كلامك هذا ان الكود في المشاكة رقم 7 فيه خطأ

انتظر الرد بشغف علامتنا الكبير

وسامحنا ان كان منا اي تقصير...

كود التقديرات للطلاب اين هذا الكود ؟

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

السلام عليكم

 

قارن بين عمل هذين الكودين


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
MsgBox "KH"
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Intersect(Target, Range("a1:a100")) Is Nothing Then
    MsgBox "KH"
End If
End Sub

وستعرف ماذا اقصد !!!!!!!!!!!

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

اخى واستاذنا

عبدالله باقشير

اكواد فى غاية الروعه

ونشكرك على سعة صدر

وتعاونك معنا

لتصل الينا المعلومه

بارك الله فيك

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

الاستاذ الكبير القدير// عبد الله باقشير

1 ) جزاك الله خيرا على سعة صدرك لنا وجعل لله ما تقول وتعمل في ميزان حسناتك

2 ) طبعا انا فهمت ما كنت تقصده

وطبعا هناك فرق بين الكودين

فرق ما بين السماء والارض

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

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

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