1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
| Function PASS(Optional iAnnee As Integer) As Double
If iAnnee = False Then iAnnee = Year(Now)
Select Case iAnnee
Case 2007: PASS = 32184
Case 2006: PASS = 31068
Case 2005: PASS = 30192
Case 2004: PASS = 29712
Case 2003: PASS = 29184
Case Else: PASS = "Erreur"
End Select
End Function
Function PMSS(Optional iAnnee As Integer) As Double
If iAnnee = False Then iAnnee = Year(Now)
PMSS = PASS(iAnnee) / 12
End Function
Function TrancheA(dsalaire As Double, Optional iAnnee As Integer) As Double
If iAnnee = False Then iAnnee = Year(Now)
TrancheA = Min(dsalaire, PASS(iAnnee))
End Function
Function TrancheB(dsalaire As Double, Optional iAnnee As Integer, Optional bRetire As Boolean) As Double
If iAnnee = False Then iAnnee = Year(Now)
TrancheB = Min(dsalaire, 4 * PASS(iAnnee)) + (Not bRetire) * TrancheA(dsalaire, iAnnee)
End Function
Function TrancheC(dsalaire As Double, Optional iAnnee As Integer, Optional bRetire As Boolean) As Double
If iAnnee = False Then iAnnee = Year(Now)
TrancheC = Min(dsalaire, 8 * PASS(iAnnee)) + (Not bRetire) * TrancheB(dsalaire, iAnnee, True)
End Function
Function TrancheD(dsalaire As Double, Optional iAnnee As Integer) As Double
If iAnnee = False Then iAnnee = Year(Now)
TrancheD = dsalaire - TrancheC(dsalaire, iAnnee, True)
End Function
Function Min(d1 As Double, d2 As Double) As Double
Min = d1 - (d1 > d2) * (d2 - d1)
End Function
Function Budget(rDonnees As Range, dTaux As Double) As Double
'si on n'entre pas des taux en pourcentage
If dTaux > 1 Then dTaux = dTaux / 100
Budget = Application.WorksheetFunction.Sum(rDonnees) * dTaux
End Function
Function BudgetBrut(rDonnees As Range, dTauxA As Double, dTauxB As Double) As Double
'si on n'entre pas des taux en pourcentage
If dTauxA > 1 Then dTauxA = dTauxA / 100
If dTauxB > 1 Then dTauxB = dTauxB / 100
Budget = Application.WorksheetFunction.Sum(rDonnees) * dTaux
End Function |
Partager