Merci pour votre réponse rapide.
Dans ma fonction qui est :
=SI(ANNEE($F3)>AG$2;0;SI(ANNEE($F3)=AG$2;(CONCATENER("31/12/";AG$2)-$D3)/(30*$G3)*$E3;SI(ANNEE(($F3+$G3*30))<AG$2;0;SI(ANNEE($F3+$G3*30)=AG$2;$E3*(12/$G3)-(CONCATENER("31/12/";ANNEE($D3))-$D3)/(30*$G3)*$E3;$E3*12/$G3))))
Comment peut-on traduire "CONCATENER" en VBA ? Y a-t-il d'autres particularités à programmer à par des If ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Function Amortissement(Montant,Debut,Duree,Annee)
If '(l'année de début)' Debut > Annee Then
Amortissement = 0 Else
If Debut(annee) = Annee Then
Amortissement = ((CONCATENER("31/12/";Annee) - Debut) / (30,5 * Duree) * Montant Else
If ( Debut(annee) + Duree * 30,5 ) < Annee Then
Amortissement = 0 Else
If ( Debut(annee) + Duree * 30,5 ) = Annee Then
Amortissement = Montant * (12/Duree) - ((CONCATENER("31/12/";Debut(année)) - Debut) / (30,5 * Duree) * Montant Else
Amortissement = (Montant * 12 / Duree)
End If
End If
End If
End If
End If
End Function |
Avec
Montant : Montant de l'amortissement
Debut : Date du début de l'amortissement
Duree : La durée de l'amortissement
Annee : Année à laquelle on veut connaître l'amortissement.
Avec 30.5 pour moyenne jours par mois. J'ai surligner en rouge mes problèmes de concatenation lorsque je veux juste l'année de début par exemple.
Me conseillez-vous de procéder autrement ? Pourriez-vous m'aider à codifier en partie ou me corriger ?
Merci d'avance.
Amicalement
Alexis
Partager