'Cp = cumul mois précédent
'Cec = cumul mois en cours
'Cv = Nombre de chevaux
'Nbkm = nombre de km parcouru dans le mois
Public Function CALCULKM(Cp, Cec, Cv, NbKm) As Single
Application.Volatile
Dim i As Single 'prix <5000
Dim j As Single 'prix >5000 <20 000
Dim k As Single 'prix >20 000
Dim l As Single 'régul palier 1
Dim m As Single 'régul palier 2
i = Evaluate("VLookup(Cv, base_km, 2, false)")
j = Evaluate("Vlookup(Cv, base_km, 4, false)")
k = Evaluate("Vlookup(Cv, base_km, 5, false)")
l = Evaluate("Vlookup(Cv, base_km, 8, false)")
m = Evaluate("Vlookup(Cv, base_km, 11, false)")
If Cp < 5000 And Cec <= 5000 Then CALCULKM = NbKm * i Else
If Cp <= 5000 And Cec > 5000 And Cec < 20000 Then CALCULKM = ((((Cec - 5000) * j) + ((5000 - Cp) * i)) + l) Else
If Cp > 5000 And Cp < 20000 And Cec > 5000 And Cec <= 20000 Then CALCULKM = NbKm * j Else
If Cp < 20000 And Cec > 20000 Then CALCULKM = ((((Cec - 20000) * k) + ((20000 - Cp) * j)) + m) Else
If Cp >= 20000 And Cec > 20000 Then CALCULKM = NbKm * k Else
End Function