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

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

قام بنشر

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

اساتذتي الكرام

ارجوا النظر في المرفق

والمطلوب كود يعمل على اظهار المدة الدنيا في العمود BN والمدة القصوى في العمود BO

على حسب التاريخ المدخل يدويا  في العمود BM

والمدة الدنيا والقصوى تعمل حسب المعطيات في العمود L

ملاحظة هامة:

في حال عمل الكود من احد عمالقة هذا المنتدى المميز

سوف اضيفه على اكواد موجودة عندي مسبقا مربوطة بزر تحديث

(يعني مش حفتحله موديول جديد) سوف اضيفه فقط

اشكركم جميعا.

‫كود االمدة 1.rar

قام بنشر

رائع أخي الغالي أبو عيد (معادلة في منتهى الروعة والإبداع)

لتحويل المعادلة لكود يمكن ببساطة استخدام كلمة Formula للنطاق المطلوب ووضع المعادلة مع تغييرات بسيطة

اطلع على الكود التالي وتعلم كيف يمكن تحويل المعادلة إلى كود

Sub Test()
    With ActiveSheet
        .Range("BN4:BN8").Formula = "=IFERROR(IF(OR(BM4="""",L4="""",L4=""1"",L4=""OFF""),"""",CHOOSE(L4,"""",""خطأ"",BM4+366,""خطأ"",BM4+545,""خطأ"",BM4+730)),"""")"
        .Range("BO4:BO8").Formula = "=IFERROR(IF(OR(BM4="""",L4="""",L4=""1"",L4=""OFF""),"""",CHOOSE(L4,"""",""خطأ"",BM4+545,""خطأ"",BM4+730,""خطأ"",BM4+910)),"""")"
        .Range("BN4:BO8").Value = .Range("BN4:BO8").Value
    End With
End Sub

 

  • Like 1
قام بنشر

استاذ ابو البراء

ممكن تشرحلي شوية على الكود

هوه اشتغل تمام

وعملت له اختبار وعمله 100%

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

عشان ممكن في أي وقت تتغير المدة الدنيا والقصوى

او ممكن رقم المستوى يتغير

واريد ان افهم الكود عشان استطيع اني اغير بسهولة

طلبي

 المستوى                الدنبا                    القصوى

3                           365                       545

5                          545                       730

7                          730                       910

1                           ..                         ..

OFF                      ..                         ..

احتمال كبير جدا خلال 6 اشهر يكون فيه مدة دنيا وقصوى ل OFF

وممكن يضاف رقم مستوى جديد مثل (2  او  4   او   6)

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

ارجوا تتقبل استفساري الطويل هذا بصدر رحب كما عهدتك :rol:

قام بنشر

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

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

قام بنشر
اقتباس

 

استاذ  أبو عيد

ممكن تشرحلي شوية على الكود الي عمله الاستاذ ابو البراء

هوه اشتغل تمام

وعملت له اختبار وعمله 100%  (سواء معادلة او كود)

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

عشان ممكن في أي وقت تتغير المدة الدنيا والقصوى

او ممكن رقم المستوى يتغير

واريد ان افهم الكود عشان استطيع اني اغير بسهولة

طلبي

 المستوى                الدنبا                    القصوى

3                           365                       545

5                          545                       730

7                          730                       910

1                           ..                         ..

OFF                      ..                         ..

احتمال كبير جدا خلال 6 اشهر يكون فيه مدة دنيا وقصوى ل OFF

وممكن يضاف رقم مستوى جديد مثل (2  او  4   او   6)

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

ارجوا ان لا تعتبر اني قد تجاهلتك بالسؤال بعد اجابة الاستاذ ابو البراء

ولكن من حسن نية

وجدته وضع الكود فقمت بسؤاله

ولذلك فلك جزيل الشكر اخي الحبيب :rol:

  • Like 2
قام بنشر (معدل)

وعليكم السلام

CHOOSE(index_num,value1,value2,...)

لو عندك أربعة صناديق 1 الأول مكتوب فيه رقم 6

                              2 الثاني خالي ليس فيه شي

                              3 الثالث فيه ساعة ( هدية )

                              4 الرابع فيه ورقة مكتوب فيها : أعد الكرة مرة أخرى

ثم قلت لك اختر رقما , وأنت اخترت رقم 3 ( إذا ما سيحصل  ؟ ) ستتحصل على ساعة

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

هذه الدالة شوز لها أكثر من 200 صندوق

الصندوق الأول هو VALUE1

الصندوق الثاني هو VALUE2

الصندوق الثالث هو VALUE3  

وهكذا  VALUE250   

وأنت ستختار رقما وهو index_num

كل الصناديق فارغة , أنت تضع فيها ما تشاء , ( رقم أو نص أو معادلة أو تتركه خاليا )

يعني تختار عدد الصناديق وتضع فيها ما تشاء

في ١١‏/٢‏/٢٠١٧ at 02:41, ياسر خليل أبو البراء said:

CHOOSE(L4,"","خطأ",BM4+545,"خطأ",BM4+730,"خطأ",BM4+910)

 

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

لو عندك سبع صناديق 1 الأول ليس فيه شي ("")

                              2 الثاني فيه عبارة نصية ("خطأ")

                              3 الثالث فيه معادلة  BM4+545

                              4 الرابع فيه عبارة نصية ("خطأ")

                              5 الخامس فيه معادلة  BM4+730

                              6 السادس فيه عبارة نصية ("خطأ")

                              7  السابع فيه معادلة  BM4+910

لاحظ في المعادلة يتم فصل كل صندوق عن الآخر بفاصلة

عندما تضع اي رقم في الخلية L4 سيتم اختبار الصندوق المناسب بناء

تم تعديل بواسطه أبوعيد
قام بنشر

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

أعتقد أصبحت الصورة واضحة الآن لاستخدام دالة CHOOSE (وهي تعني باللغة الإنجليزية "اختيار" ، ومن اسمها تعرف المقصد من استخدامها)

تقبلوا تحياتي

قام بنشر (معدل)
اقتباس

 

استاذ  أبو عيد

الله يعطيك العافية

شرحك ممتاز وواضح والمعادلة شغالة تمام

انا اقصد

كيف اعرف ان الرقم

3   اخذ المدة الدنيا 365   والمدة القصوى 454

الرقم 3 غير موجود في المعادلة او الكود وكذلك 5  و  7  و  9  و  OFF

هل المقصود ان الارقام لابد ان تكون في الجدول مرتبه

هكذا

المستوى                                                      الدنبا                    القصوى

3              يكونوا كلهم ورا بعض                       365                       545

5           ثم                                                 545                       730

7          ثم                                                  730                       910

1         ثم                                                    ..                         ..

OFF    ثم                                                    ..                         ..

 

من الممكن ان يكون الصف الاول والثاني والثالث مثلا

تحتوي على الرقم 3

والصف الرابع يحتوي على OFF

والصف الخامس يحتوي على الرقم 3

وهكذا

وعندي حوالي 600 صف

معليش تحملني شويه اخي الكريم

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

أي رقم ستكتبه في الخلية L4  سيدخل ضمن المعادلة

إذا كتبت فيها رقم 3 فإن المعادلة ستختار ما كتب في القيمة الثالثة (الصندوق الثالث)

  • Like 1
قام بنشر
في ‏١٤‏/‏٠٥‏/‏١٤٣٨ at 02:12, احمد 505 said:

 

الاستاذ ابو البراء

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

في ‏١٤‏/‏٠٥‏/‏١٤٣٨ at 02:41, ياسر خليل أبو البراء said:

 


Sub Test()
    With ActiveSheet
        .Range("BN4:BN8").Formula = "=IFERROR(IF(OR(BM4="""",L4="""",L4=""1"",L4=""OFF""),"""",CHOOSE(L4,"""",""خطأ"",BM4+366,""خطأ"",BM4+545,""خطأ"",BM4+730)),"""")"
        .Range("BO4:BO8").Formula = "=IFERROR(IF(OR(BM4="""",L4="""",L4=""1"",L4=""OFF""),"""",CHOOSE(L4,"""",""خطأ"",BM4+545,""خطأ"",BM4+730,""خطأ"",BM4+910)),"""")"
        .Range("BN4:BO8").Value = .Range("BN4:BO8").Value
    End With
End Sub

 

اواعدلها على العدد الى انا احتاجه

اقصد (BN4:BN8) هل اتركها الى 8

او اعدلها مثلا الى 600

لاني احتاج الى اكثر من العدد 8

هل اعدلها مثلا الى (BN4:BN1000)

قام بنشر

أخي الكريم أحمد

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

حاول دائماُ في الحلول التي توضع أن تدرسها وتفهمها وتهضمها بشكل جيد لكي تستفيد منها وتستطيع التعديل عليها بنفسك

وليكن شعارك فيد واستفيد ، وانقل المعلومة لغيرك ليعم الخير على الجميع

تقبل تحياتي

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