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

التحكم بالصور من خلال الكود


مستخدم

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

السلام عليكم

أو موضوع لي هنا في المنتدى .. وعندي مشروع أبغيكم تعطوني رايكم فيه وأتمنى أن أحصل الحل عندكم .

الملف هنا

أريد تغيير الصورة على حسب درجة النسبة المئوية ...

اتمنى أن أحصل الحل عندكم ...

تحياتي

مستخدم

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

السلام عليكم

أتمنى إني ما أكون أزعجتك أخوي محمد ..

انا أريد طريقة لكي أضع فيه درجة الحرارة وفي نفس الوقت إذا كانت الدرجة أكثر من 30 .. تتغير الصورة في الجو حار

وإذا أقل من 10 الجو معتدل ....

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

جزاك الله خير أخوي محمد وبارك الله في خطاك وأسكنك فسيح جناته ...

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

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$B$1" Then
  If Worksheets("m").Range("B1").Value > 30 Then
       Worksheets("m").Shapes("Picture 2").Select
       Selection.ShapeRange.ZOrder msoBringToFront
  Else
       Worksheets("m").Shapes("Picture 1").Select
       Selection.ShapeRange.ZOrder msoBringToFront
  End If
  Worksheets("m").Range("B1").Select
 Else
  Worksheets("m").Range("B3").Select
 End If
End Sub

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

السلام عليكم ...

هذا شرح بسيط وسريع ...

أولاً قمت بحماية ورقة العمل ماعدا الخليتين B1 و B3 ، وذلك مع إزالة إمكانية تحديد الخلايا المحمة ، وبذلك فإنه لا يمكن تحديد سوى الخليتين B1 و B3

الكود ببساطة :

الشرط الأول :

إذا كانت الخلية المعدلة هي B1 فيتم الانتقال للشرط الثاني ، والا فيتم تحديد الخلية B3

Worksheets("m").Range("B3").Select
وذلك لأنها هي الخلية المعدلة في هذه الحالة الشرط الثاني : إذا كانت الخلية B1>30 فيتم جعل صورة الجو حار (الصورةPicture 2) في المقدمة :
Worksheets("m").Shapes("Picture 2").Select
Selection.ShapeRange.ZOrder msoBringToFront
وإلا فيتم جعل صورة الجو معتدل (الصورةPicture 1) في المقدمة :
Worksheets("m").Shapes("Picture 1").Select
Selection.ShapeRange.ZOrder msoBringToFront
وفي كلتا الحالتين فإنه يتم تحديد الخلية B1
Worksheets("m").Range("B1").Select

وذلك لأنه الخلية المعدلة في هذه الحالة ....

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

  • 1 month later...

السلام عليكم ...

من الممكن جعل الكود السابق أكثر كفاءة ، وذلك بتفادي تنشيط كل صورة قبل التعامل معها.

الكود بعد التعديل:

Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Address = "$B$1" Then
 If Worksheets("m").Range("B1").Value > 30 Then
 Worksheets("m").Shapes("Picture 2").ZOrder msoBringToFront
 Else
 Worksheets("m").Shapes("Picture 1").ZOrder msoBringToFront
 End If
 Worksheets("m").Range("B1").Select
 Else
 Worksheets("m").Range("B3").Select
 End If
End Sub

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

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

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

Important Information