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

تغير قيمة خلية عند الوقوف بالماوس على خلية اخرى


lord

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

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

تحياتى للجميع

هل يمكن تغير قيمة خلية عند الوقوف بالماوس عليها اوتحديدها

تتغير قيمة خلية بنفس قيمة الخلية التى تم تحديدها

مثال:

عتدى الخلية b20 ويوجد بها قيمة ( وليكن الاهرام )

وخلية اخرى b50 يوجد بها قيمة ( وليكن ابو الهول)

وخلية اخرى b100 يوجد بها قيمة ( وليكن تمثال رمسيس )

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

وهكذا

ارجو افادتى بالرد

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

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

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

على ما يبدو أنك تقوم بتصميم لعبة بواسطة الاكسل :d

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

فقط ألصق الكود التالي في الورقة المطلوب تنفيذ الكود فيها:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = "$B$20" Or Target.Address = "$B$50" Or Target.Address = "$B$100" Then
   Me.Range("$B$9").Value = Target.Value
 End If
End Sub

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

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

معلش يا استاذ محمد

انت دائما سباق بالخير

جزاك الله خيرا

هل يمكن ان يكتب قيمة الخلية التى تسبق التحديد

مثلا انا واقف على الخلية B20 يكتب قيمة الخلية B19

هذا التعديل سوف يفيد كثيرا

وشكرا

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

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

جرب الكود التالي:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  Target.Value = Me.Cells(Target.Row - 1, Target.Column)
End Sub

و انتبه إلى تحديد مجال عمل الكود عن طريق التعليمة IF المشروحة في الرابط التالي:

http://www.officena.net/ib/index.php?showt...t=0entry32590

بالتوفيق:fff:

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

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

- يجب قبل كل شيء تحديد مجال عمل الكود ، ففي الكود السابق حددنا المجال A2:A20 على أنه المجال الذي يكون فيه الكود فعال ، لننظر كيف ترجمنا المجال السابق:

If Target.Column = 1 And Target.Row >= 2 And Target.Row <= 20 Then
المتغير Target يستخدم للإشارة إلى الخلية التي تم تعديلها. الآن من الشرط السابق : إذا كانت الخلية المعدلة موجودة في العامود الأول وأن سطرها ينتمي للمجال المغلق [2,20]  فإنه سيتم الانتقال للعبارة التالية
هذا اقتباس من المشاركة السابقة لنرى كيف يمكننا استخدامه في كودنا الجديد:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = 1 And Target.Row >= 2 And Target.Row <= 20 Then
    Target.Value = Me.Cells(Target.Row - 1, Target.Column)
  End If
End Sub

تأكد من أنك أضفت العبارة End If في نهاية الكود.

بالتوفيق:fff:

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

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

استاذى العزيز

تحياتى

الكود بيعمل لكن

عند تحديد الخلية مثلا a21 بنفذ المطلوب ويكتب قيمة الخلية a20 بداخل الخلية a9

هذا فعلا ما اطلبة وعمل شى جميل جداجدا

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

يعنى لو علمت بالماوس على الخلية a22 يكتب نفس القيمة فيها ولو علمت على الخلية الى بعدها كذلك يتم كتابة قيمة الخلية مرة ثانية

كل هذا بعد مانفذ المطلوب فى الاول

ارجو المعزرة لاننى عارف قد ايه انت مشغول

وشكرا

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

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

اعذرني يا أخي ، ام أفهم المقصود بصورة واضحة!

إذا كان قصدك أنه عند تحديد/تعديل أحد الخلايا التالية B20 ، B50 ، B100 فإنه يتم إدراج قيمة الخلية التي تسبق الخلية المحددة/المعدلة ضمن الخلية B9 ، إذا كان ذلك قصدك فجرب الكود التالي:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Address = "$B$20" Or Target.Address = "$B$50" Or Target.Address = "$B$100" Then
    Me.Range("$B$9").Value = Me.Cells(Target.Row - 1, Target.Column)
  End If
End Sub

:fff:

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

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

جرب الكود التالي:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Address = "$B$21" Or Target.Address = "$B$51" Or Target.Address = "$B$101" Then
   Me.Range("$B$9").Value = Me.Cells(Target.Row - 1, Target.Column)
 End If
End Sub

ألصق الكود السابق في الأوراق التي ترغب بتطبيق الإجراء عليها.

______.zip

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

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

طبعا الكود جميل وشغال

ممكن اطمع فى تكمله له

عند الوقوف على خلية التحديد لتغير قيمة الخلية b9

يتم تحديد مدى محدد يبداء من خلية التحديد وينتهى الى الخلية مثلا

يتم تحديد البيانات الموجودة من الخلية b10 :aj100

وعند الوقوف على خلية التحديد b102:

يتم تحديد البيانات الموجودة من الخلية b102 :aj200

بشرط يكون التحديد للخلايا التى تحتوى على بيانات فقط

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

وشكرا

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

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

هذا بسيط ويمكن تحديد الخلايا التي تحتوي على بيانات فقط ، ولكن حددلي ما تريد بالضبط ولا داعي لكلمة مثلاً. :d

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

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

بلاش مثلا

عند تحديد الخلية b10 (يتم تحديد المدى من B10 :V50 للبيانات التى تحتوى العمود AJ على كلمة ( سائح ) فقط 0

عند تحديد الخلية b51 (يتم تحديد المدى من B51 :V100 للبيانات التى تحتوى العمود AJ على كلمة ( سائح ) فقط 0

عند تحديد الخلية b101 (يتم تحديد المدى من B101 :V125 للبيانات التى تحتوى العمود AJ على كلمة ( سائح ) فقط 0

ولسيادتكم جزيل الشكر

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

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

يا أخي ، ما فائدة ذلك في العمل ؟!!!!!!

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

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

إذا كان هذا الأمر مهماً لك في العمل ، فأدرجه في موضوع مستقل.

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

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

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

Important Information