اذهب الي المحتوي
أوفيسنا
بحث مخصص من جوجل فى أوفيسنا
Custom Search

اخواني الاعزاء مشكلة في كود if


إذهب إلى أفضل إجابة Solved by احمد عبد الناصر,

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

الأخ الفاضل أحمد عماد

رغم الملف المرفق والشرح الموجود بداخله إلا أنني لم أدرك الطلب بشكل جيد

هلا وضحت بأسلوب آخر ..

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

استاذ ياسر لى الشرف انك رديت على موضوعي 

شكرا جزيلا لك

 

 

الفكره انه الملف بيتكلم عن توريد وصيانه مشاريع حلو

العمود A هوحالة المشروع  في الوضع القديم 

وبعد كدا عمود B نسبة إنجازة  و C المدة المنقضية من المشروع

العمود D دا الداله اللى عاملين لها الكود اللى المفروض انها هتاخد الحالة القديمة والنسبتين ولو الحالة منتظمة أو متعثرة أو متأخرة هيبدأا الكود يتعامل على النسب ويشوف الفروق كما موضحة بالملف

غير ال 3 حالات دول يسيب الحاله كما هي

أرجو انى اكون قدرت أوضح

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

تمام تمام

دا اللي أنا فهمته من الملف من قبل ما توضحه ..

زيد في التوضيح أكتر بالنسبة لشروط كل حالة لعل وعسى أن تستطيع إيجاد حل لها

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

حلو

اللعب على ال 3  حالات منتظم متاخر متعثر فقط

لو انجز من 90% الى 100% يتم التحويل الى جاري الانتهاء منه حتى لو وصل ل 100% يعتبر جاري الانتهاء منه دون النظر الى المدة المنقضية 

تمام

 

لو بقى الفرق بين المدة المنقضية والمنجز اقل من او يساوي 20 % او المنجز يتخطي المدة المنقضية اذا  يتم التحويل الى منتظمه

 

تمام

ولو الفرق اكثر من 20% والمنقضية لا تتخطي ال 100% وطبعا ميكنش وصل ل 90% لانه هيكون بقي في حالة جاري الانتهاء منه ,,, دا بقي متأخر

 

تمام

ولو تخطت المدة المنقضية ال 100% وطبعا ميكنش الانجاز وصل ل 90%  ,,,, ودا متعثر

 

 

 

تمام

غير كدا بقي لو الحالة مكتوب فيها اى حاجة غير ال 3 دول تفضل كما هي

 

 

 

واتمنى اكون وضحت

وشكرا لك

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

انا قاعد اجرب  بس مظبطتش بما انى جديد على موضوع الاكواد

Function CHANGE_STATUS(status As String, ENGAZ As Double, MONQDIA As Double) As String

Dim FARK As Double

FARK = MONQDIA - ENGAZ

Select Case status

Case "منتظمة"

If ENGAZ >= 0.895 Then

CHANGE_STATUS = "جاري الانتهاء منها"

ElseIf (FARK <= 0.2049) And (monqadia < 1) Then

CHANGE_STATUS = "منتظمة"

ElseIf (FARK > 0.2049) And (monqadia < 1) Then

CHANGE_STATUS = "متأخرة"

ElseIf (ENGAZ < 0.895) And (monqadia > 1) Then

CHANGE_STATUS = "متعثرة"

End If

Case "متأخرة"

If ENGAZ >= 0.895 Then

CHANGE_STATUS = "جاري الانتهاء منها"

ElseIf (FARK <= 0.2049) And (monqadia < 1) Then

CHANGE_STATUS = "منتظمة"

ElseIf (FARK > 0.2049) And (monqadia < 1) Then

CHANGE_STATUS = "متأخرة"

ElseIf (ENGAZ < 0.895) And (monqadia > 1) Then

CHANGE_STATUS = "متعثرة"

End If

Case "متعثرة"

If ENGAZ >= 0.895 Then

CHANGE_STATUS = "جاري الانتهاء منها"

ElseIf (FARK <= 0.2049) And (monqadia < 1) Then

CHANGE_STATUS = "منتظمة"

ElseIf (FARK > 0.2049) And (monqadia < 1) Then

CHANGE_STATUS = "متأخرة"

ElseIf (ENGAZ < 0.895) And (monqadia > 1) Then

CHANGE_STATUS = "متعثرة"

End If

Case Else

CHANGE_STATUS = status

End Select

End Function

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

جرب الدالة بهذا الشكل

Function CHANGE_STATUS(status As String, ENGAZ As Double, MONQDIA As Double) As String
    Fark = MONQDIA - ENGAZ
    
    If Fark <= 0.2 Or ENGAZ > MONQDIA Then
        CHANGE_STATUS = "منتظمة"
    ElseIf Fark > 0.2 And Not MONQDIA > 1 And Not ENGAZ >= 0.9 Then
        CHANGE_STATUS = "متأخرة"
    ElseIf ENGAZ < 0.9 And MONQDIA >= 1 Then
        CHANGE_STATUS = "متعثرة"
    ElseIf ENGAZ >= 0.9 And ENGAZ <= 1 Then
        CHANGE_STATUS = "جاري الانتهاء منها": Exit Function
    Else: CHANGE_STATUS = status
    End If
End Function

ويا ريت تضع شروط بشكل أعمق حتى تتضح الصورة الكلية !! لأن فيه تداخل بين الشروط

ممكن تقسم الشروط بالنسب من تحت لفوق من النسبة الأصغر للأكبر

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

لاحظت في الكود الذي أرفقته إنك اشتغلت على العمود الأول .. أنا كنت معتقد إنه ملوش لازمة

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

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

السلام عليكم أستاذنا ياسر

بحاول اوضح اكثر من كدا واكتب رد وبعد ما اخلص الاقي هو نفسه التوضيح اللى من قبل

طيب اقولك ايه الشروط اللى مش واضحه قدامك

وشكرا لوقت حضرتك

وشكرا لإهتمامك

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

  • أفضل إجابة

السلام عليكم

 

-هناك قيم تحتاج round مثل القيمة 89.5% في الخلية b2

-هناك كلمات بها مسافات زيادة تحتاج لازلة هذه المسافات هكذا " منتظمة" تصبح "منتظمة"

 

لست متأكد من اني فهمت الجزء الثاني من هذه الجملة

----

لو بقى الفرق بين المدة المنقضية والمنجز اقل من او يساوي 20 % او المنجز يتخطي المدة المنقضية اذا  يتم التحويل الى منتظمه

----

 

جرب المرفق

 

تحياتي

help+.rar

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

السلام عليكم

اخ احمدعبد الناصر

جزاك الله خيرا تقريبا وصلنا كدا لنص الحل

تسلم يمينك

المشكله انك رابط الدالة ب "رينج معين " وانا اريدها تعمل على اى خليه متكونش مرتبطة بعمود ولا بصف

شكرا

وبارك الله فيك

الاخ الزباري

تسلم ويسلم اهتمامك بالموضوع

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

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

وشكرا لك

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

السلام عليكم

 

 

 

المشكله انك رابط الدالة ب "رينج معين " وانا اريدها تعمل على اى خليه متكونش مرتبطة بعمود ولا بصف

 

مظنش انها مرتبطة بحاجة ال a,b,c دول متغيرات الدالة بالحظ شبه اسماء الاعمدة :] 

 

جرب علي خلايا مختلفة ان شاء الله تشتغل معاك

 

تحياتي

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

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