Je ne le dirai jamais assez : WORD EST NUL EN DATES !

Donc, dans la mesure du possible, il est préférable d'ajouter une colonne dans votre base de données, avec le calcul sur vos dates. Avec Excel, c'est très simple.

Si, toutefois, vous n'avez pas cette possibilité, c'est faisable avec les champs de Word, mais il faut s'accrocher.

Voici donc le champ, partant du principe que le champ de date se nomme "ladate". Il faudra bien sûr modifier avec le nom de votre champ à vous. J'insiste sur le fait que TOUS LES { } se créent avec Ctrl+F9.

 Ce n'est pas facile à refaire ! N'hésitez pas à télécharger le document qui vous permettra de faire de simples copier-coller, afin d'ajouter un choix de jours, de mois ou d'années.

Notez par ailleurs que ces champs peuvent tout à fait être utilisés en dehors d'un publipostage, dans un modèle en particulier. Dans ce cas, le champ "ladate" devra être signifié au début par un champ SET pour indiquer qu'il s'agit de la date du jour (c'est le cas utilisé dans l'exemple à télécharger).

{ set ladate {date}}

 

{QUOTE
{ set nb_mois 1}
{ set Delay 0 }
{SET mm{=MOD({ladate \@ M}+nb_mois -1;12)+1}}
{SET yy{={ladate \@ yyyy}+INT((Delay+{ladate \@ M}-1)/12)}}
{SET dd{=IF(({ladate \@ d}>28)*(mm=2)=1;28+((MOD(yy;4)=0)+(MOD(yy;400)=0)-(MOD(yy;100)=0));IF((mm=4)+(mm=6)+(mm=9)+(mm=11)+({ladate \@ d}>30)>1;30;{ladate \@ d}))}}
{=dd*10^6+mm*10^4+yy \# "00'-'00'-'0000"} \@ "dddd d MMMM yyyy"}

 

S'il s'agit d'ajouter un an, utilisez le code suivant :

{QUOTE
{SET nb_an 1}
{SET yy{={ladate \@ yyyy}+nb_an}}
{SET dd{={ladate \@ d}-({DATE \@ d}>28)*({ladate \@ M}=2)*((MOD(yy;4)>0)+(MOD(yy;400)>0)-(MOD(yy;100)>0))}}
{=dd*10^6+{ladate \@ M}*10^4+yy \# "00'-'00'-'0000"} \@ "dddd d MMMM yyyy"}

 

Pour tout savoir sur les calcul de dates avec les champs, voyez ce document.