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 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105
|
Function Abondement(Cumul As Currency, Cumul_1 As Currency, Versement As Currency, CumulAbondement As Currency)
Dim I As Integer
Dim CumulA, Part150, Part135, Part110, Part075, Part0 As Currency
Dim AbondementMaximal As Currency
AbondementMaximal = 1296.8
Select Case Cumul
Case Is < 400 ' Abondement à 150%
Abondement = Versement * 1.5
Case Is > 400, Is <= 700 'Abondement 135%
Select Case Cumul_1
Case Is <= 400 'Abondement lorsque changement de tranche 150% vers 135%
Part135 = (Cumul - 400) * 1.35
Part150 = (Versement - (Cumul - 400)) * 1.5
Abondement = Part135 + Part150
'Test de l'abondement maximal 1296
CumulA = CumulAbondement + Abondement
If CumulA > AbondementMaximal Then Abondement = AbondementMaximal - CumulAbondement
Case Is > 400 'Abondement 135%
Abondement = Versement * 1.35
CumulA = CumulAbondement + Abondement
If CumulA > AbondementMaximal Then Abondement = AbondementMaximal - CumulAbondement
End Select
Case Is > 700, Is <= 900 'Abondement 110%
Select Case Cumul_1
Case Is <= 700 'Abondement lorsque changement de tranche 135% vers 110%
Part110 = (Cumul - 700) * 1.1
Part135 = (Versement - (Cumul - 700)) * 1.35
Abondement = Part110 + Part135
'Test de l'abondement maximal 1296
CumulA = CumulAbondement + Abondement
If CumulA > AbondementMaximal Then Abondement = AbondementMaximal - CumulAbondement
Case Is > 700 'Abondement 110%
Abondement = Versement * 1.1
' Exit Function
'Test de l'abondement maximal 1296
CumulA = CumulAbondement + Abondement
If CumulA > AbondementMaximal Then Abondement = AbondementMaximal - CumulAbondement
End Select
Case Is > 900, Is <= 1000 'Abondement 75%
Select Case Cumul_1
Case Is <= 900
Part075 = (Cumul - 900) * 0.75
Part110 = (Versement - (Cumul - 900)) * 1.1
Abondement = Part075 + Part110
'Test de l'abondement maximal 1296
CumulA = CumulAbondement + Abondement
If CumulA > AbondementMaximal Then Abondement = AbondementMaximal - CumulAbondement
Case Is > 900
Abondement = Versement * 0.75
'Test de l'abondement maximal 1296
CumulA = CumulAbondement + Abondement
If CumulA > AbondementMaximal Then Abondement = AbondementMaximal - CumulAbondement
End Select
Case Is > 1000 'Abondement lorsque changement de tranche 75% vers 0%
If Cumul_1 <= 1000 Then
Part075 = (Versement - (Cumul - 1000)) * 0.75
Abondement = Part075
'Test de l'abondement maximal 1296
CumulA = CumulAbondement + Abondement
If CumulA > AbondementMaximal Then Abondement = AbondementMaximal - CumulAbondement
End If
End Select
End Function |