Calcul de date (Ajout mois "non entier")
Bonjour,
Je souhaite avoir une "fonction" Excel me permettant de calculer au plus juste une date.
Dans certains contrat nous avons ce genre d'information : Date de signature + 1,5 Mois.
En navigant un peu j'ai pu trouver une formule, pas forcément simple, faisant le travail
Code:
1 2 3
| =WORKDAY(DATE(YEAR($D$3);MONTH($D$3)+INT(C5);DAY($D$3)+MOD(C5;1)*30)-1;1)
$D$3 contient la date de référence
C5 : l'écart en nombre de mois "pouvant être entier ou non" |
Ca marche bien. Toutefois pour essayer d'améliorer la lisibilité pour l'utilisateur, l'idée m'est venue d'utiliser les formules personnalisée. Et ce en recodant la formule ainsi :
Code:
1 2 3 4 5 6 7 8 9
| Function calcMilestoneDate(ReferenceDate As Variant, lag As Variant)
'Function to caculate a date from a reference Date and associate lag in "month"
'The month can be a decimal number (1, 2, 3.5,-2...)
Application.Volatile
With Application.WorksheetFunction
calcMilestoneDate = .WorkDay(DateSerial(Year(ReferenceDate), Month(ReferenceDate) + Int(lag), Day(ReferenceDate) + (lag Mod 1) * 30) - 1, 1)
End With
End Function |
Mais, drame, cela ne marche pas :(
La formule Excel (sans vba) me retourne : 19-Oct-2015 + 1,5 mois = 4-Dec-2015
La formule Excel (avec vba) me retourne : 19-Oct-2015 + 1,5 mois = 19-Nov-2015
J'ai l'impression que probleme se situe sur :
Cela ne retourne pas le résulat que j'espérais en tout cas le même résultat que : MOD(C5;1) en formule excel
Pouvez-vous m'éclairer et me dire où est-ce que j'ai commis une erreur ? et comment y remédier ?