Modifier FormulaR1C1

Bsr

Voulant afficher l'âge de tous les adhérents dans la colonne S, à partir de la date de naissance en Colonne A, en prenant en référence la Cellule S1 aujourdhui(), la ligne "ActiveCell.FormulaR1C1 = "=DATEDIF(RC[-14],R[-1]C,""y"")"

répond parfaitement à ma demande car RC et R affiches des valeurs numériques -14 et -1

Pour lister toutes les lignes, j'affecte une variable a=-1 qui s'incrémentera mais là, j'ai une erreur d'exécution 1004...

Comment faire pour que a puisse être interprété comme une valeur numérique ?

Je me doute bien que le fait que "=DATEDIF(RC[-14],R[a]C,""y"")" soit encadré de guillemets ne permet pas l'emploi d'une variable ...comment y remédier ?

Merci

a = -1

Cells(lign, col1).Select

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

Merci.. et pour la solution et pour l'explication, on ne peut plus claire ...

je n'étais pas très loin... j'avais testé "&a" et bien sûr, ça ne fonctionnait pas..

Bonne soirée

Merci @ vous pour vos remerciements !

@ bientôt

LouReeD

Rechercher des sujets similaires à "modifier formular1c1"