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

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

قام بنشر

السلام عليكم

أريد تحويل المعادلات المرفقة في الملف إلى كود 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

 

قام بنشر

السلام عليكم

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

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

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

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