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

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

قام بنشر

السلام عليكم

أريد تحويل المعادلات المرفقة في الملف إلى كود vb لتسهيل عملية حساب معامل السنوات و الشهور و بالنسبة لحساب الشهور يجب أن يكون مرتبط بعدد السنوات مثلا

مثلا إذا تجاوزت السنوات 6 فإن معدل الحساب بالنسبة للشهور يتغير و هكذا بعد السنة 11 إلخ. التفصيل موجود في الملف.

 

Calcul IEP.xlsx

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

اختصار للكود
 

Function calcIEP(ByVal Period As Double) As Double
    Dim yr(), yy As Byte, mm As Byte
    Dim Pr(), Per As Double, Pos As Byte, p As Byte
    
    yr = Array(6, 5, 10, 5)
    Pr = Array(0.02, 0.018, 0.015, 0.04)
    
    Pos = InStrRev(Period, ".")
    mm = IIf(Pos = 0, 0, Mid(Period, Pos + 1))
    Period = Fix(Period)
    
    For p = 1 To 4
        yy = yr(p - 1): Per = Pr(p - 1)
        
        If Period > yy And p < 4 Then
            Period = Period - yy
            calcIEP = calcIEP + yy * Per
        Else
            calcIEP = calcIEP + Period * Per + (Per / 12 * mm)
            Exit For
        End If
    Next p
End Function

تم تنقيح الكود وتغيير المرفق.

Calcul IEP_03.xlsm

تم تعديل بواسطه AbuuAhmed
تنقيح الكود وتغيير المرفق
  • Like 1
قام بنشر

السلام عليكم

حبيت اشكر الجميع حيث استفدت ايضا من هذة المشاركة

ولى طلب

هل يمكن ان يتم اضافة سطور بالكود لابدال المعادلات بالقيم (اى دون ان تظهر المعادلات عند الوقف على الخلايا...

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

قام بنشر

بارك الله فيك أخي الكريم

مازال شيئ واحد فقط و هو كيفية تحويل الأرقام بعد الفاصلة إلى أرقام صحيحة مثلا 173.33 أريدها تساوي 33

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

قام بنشر (معدل)
منذ ساعه, لزهر مدلل said:

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

وعليكم السلام 
احذف اسم الدالة VALUE لتصبح النتيجة نص بدلا من رقم كذلك المدخل Period للدالة calcIEP من Double إلى String
لتصبح الدالة بشكلها النهائي:

Function calcIEP(ByVal Period As String) As Double
    Dim yr(), yy As Byte, mm As Byte
    Dim Pr(), Per As Double, P As Byte
    
    yr = Array(6, 5, 10, 5)
    Pr = Array(0.02, 0.018, 0.015, 0.04)
    
    P = InStrRev(Period, ".")
    mm = IIf(P = 0, 0, Mid(Period, P + 1))
    Period = Fix(Period)
    
    For P = 1 To 4
        yy = yr(P - 1): Per = Pr(P - 1)
        
        If Period > yy And P < 4 Then
            Period = Period - yy
            calcIEP = calcIEP + yy * Per
        Else
            calcIEP = calcIEP + Period * Per + (Per / 12 * mm)
            Exit For
        End If
    Next P
End Function


 

Calcul IEP_05.xlsm

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

حذفتها لكن لم تتغير إذا أمكن أخي أن تجربها

معذرة أخي و أرجوا أن يتسع صدركم لي قمت قمت بتعديل في الملف و نقلت له الكود المعدل لكن إذا كتبت مثلا 17.10 تحسب 17.1

 

أنظر الملفCalcul IEP.xlsm

 

قام بنشر

السلام عليكم

ولى طلب ( كتبة من قبل بالموضوع( ان امكن

هل يمكن ان يتم اضافة سطور بالكود لابدال المعادلات بالقيم (اى دون ان تظهر المعادلات عند الوقف على الخلايا...

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

انشئ حساب جديد او قم بتسجيل دخولك لتتمكن من اضافه تعليق جديد

يجب ان تكون عضوا لدينا لتتمكن من التعليق

انشئ حساب جديد

سجل حسابك الجديد لدينا في الموقع بمنتهي السهوله .

سجل حساب جديد

تسجيل دخول

هل تمتلك حساب بالفعل ؟ سجل دخولك من هنا.

سجل دخولك الان
  • تصفح هذا الموضوع مؤخراً   0 اعضاء متواجدين الان

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

Important Information