VBA FormulaR1C1

sdevers

XLDnaute Nouveau
Bonjour,

Je ne sais pas si j'ai effectué une recherche sur les bons termes (références absolues/relatives) mais en tous cas je n'ai rien trouvé sur le forum ou ailleurs, d'où ma question...

J'ai dans mon code VBA les formules suivantes
Code:
        Sheet06.Range("D150").Formula = "=AccountBalance($A150,D$1,$A$2,1)"
        Sheet06.Range("D48").Formula = "=AccountBalance($A9,D$1,$A$2,1)+background!(B121)"
où AccountBalance est une formule personnalisée.

La première ligne fonctionne nickel. Par contre, j'ai un message d'erreur pour la 2ème ligne (Application-defined or object-defined error). C'est depuis que j'ai ajouté "+background!(B121)" (background est le nom d'une de mes feuilles).

J'ai essayé de chipoter avec l'enregistreur de macro mais il me "pourrit" le code j'ai l'impression:
Code:
ActiveCell.FormulaR1C1 = "=R[-3]C+background!R[-44]C[-2]"
En gros, il m'utilise la formule .FormulaR1C1 alors que moi j'aimerais utiliser .Formula tout court.

Comment puis-je jongler entre les deux puisque la partie avec AccountBalance fonctionne parfaitement avec .Formula?

Et au passage si vous pouviez me dire comment s'appelle une procédure qui utilise un .FormulaR1C1, ça me permettrait de mieux comprendre l'enregistreur de macro en faisant quelques recherches documentaires sur le Web...

Merci d'avance,
 

Dranreb

XLDnaute Barbatruc
Re : VBA FormulaR1C1

Bonsoir.
Et au passage si vous pouviez me dire comment s'appelle une procédure qui utilise un .FormulaR1C1, ça me permettrait de mieux comprendre l'enregistreur de macro en faisant quelques recherches documentaires sur le Web...
Rien compris à cette phrase.
Personnellement j'utilise toujours FormulaR1C1 mais en mettant le moins possible d'indications entre crochets droits, donc le moins de références relatives possible vers une autre ligne ou une autre colonne que celle qui porte la formule. Il n'y a pas d'indication à mettre du tout derrière R ou C pour indiquer celle qui la porte.
Et pour en indiquer de fixes, bien sûr, on indique leur numéro d'ordre derrière R ou C sans crochets.
 
Dernière édition: