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

كود المدة الدنيا والمدة القصوى


احمد 505

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

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

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

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

والمطلوب كود يعمل على اظهار المدة الدنيا في العمود 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