الدرس الثاني
هذه الدوال يستخدمها المحاسبون ومن لهم إهتمام بأمور المحاسبة
وهي : ( PMT , PV , FV , RATE ,DDB, SLN ,SYD )
الدالة : PMT تقوم هذه الدالة بحساب الدفعة الدورية لتسديد قرض0
مثال:
كود:
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' When payments are made.
Const MB_YESNO = 4 ' Define Yes/No buttons.
Const ID_NO = 7 ' Define No as a response.
NL = Chr(13) & Chr(10) ' Define newline.
TB = Chr(9) ' Define tab.
Fmt = "###,###,##0.00" ' Define money format.
fVal = 0 ' Usually 0 for a loan.
pval = InputBox("كم المبلغ الذي تود اقتراضه؟")
APR = InputBox("كم معدل الفائدة السنوية؟")
If APR > 1 Then APR = APR / 100 ' Ensure proper form.
TotPmts = InputBox("كم المبلغ الذي سيدفع كقسط شهري؟")
paytype = MsgBox("هل الدفع في نهاية الشهر؟", MB_YESNO, "استفسار")
If paytype = ID_NO Then paytype = BEGINPERIOD Else paytype = ENDPERIOD
payment = Abs(-Pmt(APR / 12, TotPmts, pval, fVal, paytype))
Msg = "مبلغ القسط الشهري = " & Format(payment, Fmt)
Msg = Msg & NL & "هل تود رؤية قائمة بالدفعات "
Msg = Msg & "والفائدة في كل فترة؟"
MakeChart = MsgBox(Msg, MB_YESNO, "استفسار") ' See if chart is desired.
If MakeChart <> ID_NO Then
If TotPmts > 20 Then MsgBox "سنظهر لك 20 فترة فقط .", , "ملحوظة"
Msg = "الشهر الدفعة الأصل الفائدة" & NL
For period = 1 To TotPmts
If period > 20 Then Exit For ' Only show first 25.
P = PPmt(APR / 12, period, TotPmts, -pval, fVal, paytype)
P = (Int((P + 0.005) * 100) / 100) ' Round principal.
I = payment - P
I = (Int((I + 0.005) * 100) / 100) ' Round interest.
Msg = Msg & period & TB & Format(payment, Fmt)
Msg = Msg & TB & Format(P, Fmt) & TB & Format(I, Fmt) & NL
Next period
MsgBox Msg, , "قائمة الدفعات " ' Display amortization table.
End If
------------------------------------------------------------
وهذا مثال أخر قد يكون أوضح ومفهوم أفضل من سابقه
كود:
Dim العملية_الحسابة As Variant
Const نهاية_الشهر = 0, بداية_الشهر = 1
FVal = txt1
If النسبة >1 then النسبة = النسبة /12
الجواب=PMT ( النسبة / 12 , عدد_الأقساط , _ المبلغ , FVal, وقت_الدفع)
حيث :
النسبة : مربع نص يتم فيه إدخال نسبة الفائدة السنوية
عددالأقساط : هي عدد الأشهر التي يستغرقها المدين في الدفع حتى ينهي الدين
المبلغ : هو مجموع الدين أي المبلغ الأجمالي
FVAL : القيمة المستقبلية
وقت_الدف : هي رقم يعرف متى يتم الدفع فالرقم " 1 " يعني دفع القسط أول الشهر والرقم " 0 " يعني بأن الدفع يكون نهاية الشهر
------------------------------------------------
الدالة : FV
تقوم هذه الدالة بحساب القيمة المستقبلية لمبلغ معين يراد إيداعه على دفعات 0
تأخذ هذه الدالة الشكل التالي:
كود:
FV(rate , nper , pmt , pv , due )
حيث:
rate : معدل الفائدة
nper :المدة ( عدد الدفعات )
pmt : مقدار الدفعة ( 1000 أو 2000 أو000000 الخ )
pv :القيمة المستقبلية أو الرصيد بعد أخر فترة يتم الرصد فيها
due :رقم يوضح هل يتم إدخار المبلغ في أول الشهر أو أخر الشهر والرقم 1 يعني أول كل شهر
مثال على ذلك:
كود:
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' When payments are made.
Const MB_YESNO = 4 ' Define Yes/No buttons.
Const ID_NO = 7 ' Define No as a response.
Fmt = "###,###,##0.00" ' Define money format.
payment = InputBox("كم المبلغ الذي تود ادخاره شهرياً ؟")
APR = InputBox("ماهي الفائدة السنوية ؟")
If APR > 1 Then APR = APR / 100 ' Ensure proper form.
TotPmts = InputBox("ماعدد الأشهر التي ستدخر فيها ؟")
paytype = MsgBox("هل الدفع في بداية الشهر؟", MB_YESNO, "استفسار")
If paytype = ID_NO Then paytype = BEGINPERIOD Else paytype = ENDPERIOD
pval = InputBox("كم المبلغ الذي ستدخره الآن؟")
fVal = fv(APR / 12, TotPmts, -payment, -pval, paytype)
MsgBox "مجمل ادخارك = " & Format(fVal, Fmt) & ".", , "النتيجة"
----------------------------------------------
الدالة : nper
هذه الدالة تعطيك كم شهراً سوف تستغرق لكي تسدد مبلغ معين
كود:
title = "الجواب"
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' When payments are made.
Const MB_YESNO = 4 ' Define Yes/No buttons.
Const ID_NO = 7 ' Define No as a response.
fVal = 0 ' Usually 0 for a loan.
pval = InputBox("كم قيمة الدين ؟")
APR = InputBox("كم معدل الفائدة السنوية؟")
If APR > 1 Then APR = APR / 100 ' Ensure proper form.
payment = InputBox("كم المبلغ الذي تستطيع تقسيطه شهرياً ؟")
paytype = MsgBox("هل الدفع في نهاية الشهر ؟", MB_YESNO)
If paytype = ID_NO Then paytype = BEGINPERIOD Else paytype = ENDPERIOD
TotPmts = nper(APR / 12, -payment, pval, fVal, paytype)
If Int(TotPmts) <> TotPmts Then TotPmts = Int(TotPmts) + 1
Msg = "سوف تأخذ " & TotPmts & " شهراً لإنهاء الدين ."
MsgBox Msg, , title
------------------------------------------------
الدالة : IPmt
هذه الدالة تعطي نسبة الفوائد السنوية0
كود:
Const ENDPERIOD = 0, BEGINPERIOD = 1 ' When payments are made.
Const MB_YESNO = 4 ' Define Yes/No buttons.
Const ID_NO = 7 ' Define No as a response.
fVal = 0 ' Usually 0 for a loan.
Fmt = "###,###,##0.00" ' Define money format.
pval = InputBox("كم المبلغ الذي تود اقتراضه؟")
APR = InputBox("كم نسبةالفائدة السنوية؟")
If APR > 1 Then APR = APR / 100 ' Ensure proper form.
TotPmts = InputBox("كم المبلغ الذي تستطيع تقسيطه شهرياً؟")
paytype = MsgBox("هل الدفع في بداية الشهر؟", MB_YESNO, "استفسار")
If paytype = ID_NO Then paytype = BEGINPERIOD Else paytype = ENDPERIOD
For period = 1 To TotPmts ' Total all interest.
IntPmt = IPmt(APR / 12, period, TotPmts, -pval, fVal, paytype)
TotInt = TotInt + IntPmt
Next period
Msg = "سوف تدفع مبلغ = " & Format(TotInt, Fmt)
Msg = Msg & " كفائدة على هذا المبلغ."
MsgBox Msg, , "النتيجة" ' Display results.
---------------------------------------
الدالة : SYD
تستخدم هذه الدالة في حساب قيمة إهلاك الأصول الثابته ويكون قسط الإهلاك السنوي لهذه الدالة عالياً في السنوات الأولى من عمر الأصل عنه في السنوات الأخيرة0
مثال توضيحي:
كود:
txt5 = SYD(txt1, txt2, txt3, txt4)
حيث
txt5 :مربع نص يعرض ناتج الداله
SYD :الدالة
Txt1 :مربع نص يتم فيه إدخال ثمن الشراء
Txt2 :مربع نص يتم فيه إدخال قيمة الأصل المتوقعة في نهاية المدة
Txt3 :العمر الإفتراضي للسلعة
Txt4 :سنة معينة تحسب فيها القيمة
------------------------------------------------------
الدالة SLN
تستخدم هذه الدالة لحساب الخط المستقيم لانخفاض قيمة ملكية معينة خلال فترة دورة زمنية معينة أي قسط الإهلاك السنوي الثابت الأصل0
مثال توضيحي:
كود:
txt5 = SLN(txt1, txt2, txt3)
حيث
txt5 :مربع نص يعرض ناتج الداله
SYD :الدالة
Txt1 :مربع نص يتم فيه إدخال ثمن الشراء
Txt2 :مربع نص يتم فيه إدخال قيمة الأصل المتوقعة في نهاية المدة
Txt3 :العمر الإفتراضي للسلعة
Txt4 :سنة معينة تحسب فيها القيمة
-----------------------------------------------------------------
الدالة DDB:
تستخدم هذه الدال في حساب قيمة إهلاك الأصول الثابته بطريقة الإستهلاك المتناقص وكما هو معروف في علم المحاسبة أن قسط الإهلاك طبقاً لهذه الطريقة يكون عالياً في السنوات الأولى من عمر الأصل الثابت0
مثال توضيحي:
كود:
txt5 = DDB(txt1, txt2, txt3, txt4)
حيث
txt5 :مربع نص يعرض ناتج الداله
SYD :الدالة
Txt1 :مربع نص يتم فيه إدخال ثمن الشراء
Txt2 :مربع نص يتم فيه إدخال قيمة الأصل المتوقعة في نهاية المدة
Txt3 :العمر الإفتراضي للسلعة
Txt4 :سنة معينة تحسب فيها القيمة
المفضلات