Bonsoir,
comme vous écrivez votre formule, la variable "a" fait partie intégrante de celle-ci et du coup provoque une erreur puisque la feuille où se trouve la formule ne connaît pas "a".
Votre formule est dans la feuille et "a" est dans VBA, la liaison entre les deux se fait avec "&" et les guillemets, c'est pourquoi votre expression est entre guillemet.
Il faut donc "découper" votre formule afin de "revenir sous VBA" pour injecter la valeur de "a" :
ActiveCell.FormulaR1C1 ="=DATEDIF(RC[-14],R["&a&"]C,""y"")"
le guillemet placé devant un guillemet permet de dire à VBA de prendre en compte le deuxième guillemet comme un guillemet et non pas comme une limite de chaine alphanumérique, c'est ce qui se passe avec le ""y"", car dans la formule il faut bien écrire "y".
Pour insérrer la valeur de la variable "a" VBA il faut donner une fin de chaine alphanumérique ", suivi du caractère "et d'imprimerie" pour dire que l'on colle à la suite, on met la variable (qui sera remplacée dans la formule de la feuille par sa valeur), on collle la suite de la formule et on remet un guillemet de début de chaine de caractère alphanumérique pour la suite de la formule.
Ce qui donne en bleu la chaine alphanumérique qui sera écrite dans la feuille et en rouge la valeur que contiendra la variable VBA :
ActiveCell.FormulaR1C1 = " =DATEDIF(RC[-14],R[ " & a & " ]C,""y"") "
@ bientôt
LouReeD