Problème de formule en VBA

bonjour,

la formule suivante fonctionne dans la cellule C4 de la feuil3

=(INDIRECT("AAA9539E15_5M!"&CAR(64+RECHERCHEH(C$3;AAA9539E15_5M!$C$1:$V$3;2;FAUX))&(LIGNE(C4)-1))-Feuil3!C$1)/(Feuil3!C$2-Feuil3!C$1)*100

je souhaite initialiser via VBA la cellule C4 avec la formule précédente quel que soit le nom de la feuille 5M

j'ai initialisé Feuille5M à "AAA9539E15_5M"

puis j'ai mis :

ActiveCell.Formula = _

"=(INDIRECT(""" + Feuille5M + "!""" + "&CHR(64+HLOOKUP(C$3;" + Feuille5M + "!$C$1:$V$2;2;FALSE))&(ROW(C4)-1))-Feuil3!C$1)/(Feuil3!C$2-Feuil3!C$1)*100"

j'obtiens l'erreur suivante :

Erreur d'exécution 1004

Erreur définie par l'application ou par l'objet

Quelqu'un a-t-il la solution ?

Merci d'avance

Gilles

Ton code a été réaliser via l'enregistreur de macro. Il été donc fonctionnel au moment ou il a été généré mais le souci de l'enregistreur c'est qu'a la moindre modification, plus rien ne marche.

L'enregistreur de macro réalise un code bête et méchant, dénuer de logique et d'optimisation, ce qui rend son MCO relativement chiant.

A mon avis, le mieux serais de reprendre le code a 100% pour faire quelque chose de simple et fonctionnel

Bonjour,

tu ne peux pas mélanger références R1C1 et A1

A tester :

[C4].FormulaR1C1 = "=(INDIRECT(""" & Feuille5M & "!""&CHAR(64+HLOOKUP(R3C," & Feuille5M & "!R1C3:R3C22,2,FALSE))&(ROW(RC)-1))-Feuil3!R1C)/(Feuil3!R2C-Feuil3!R1C)*100"

eric

merci Eric,

ça marche

donc on ne peux pas utiliser des références A1 avec .Formula

il faut utiliser des références R1C1 avec .Formula R1C1

Cordialement

--

Giles

Bonjour,

donc on ne peux pas utiliser des références A1 avec .Formula

Avec .Formula il ne faut utiliser que ça : des A1

il faut utiliser des références R1C1 avec .Formula R1C1

Oui, d'où son nom

Dans la série tu as aussi .FormulaLocal et .FormulaR1C1Local avec les noms des fonctions en français.

eric

donc on ne peut pas utiliser des références A1 avec .Formula

Avec .Formula il ne faut utiliser que ça : des A1

Bonjour Eric,

j'ai pourtant l'impression de n'avoir mis que des A1 dans mon .Formula

le principal c'est que ça marche avec ton FormulaR1C1

Cordialement

Je n'ai pas examiné ton .formula de près, j'ai juste refait à partir de ta formule.

Je me suis laissé abuser par ROW(C4)

suite...

Tu as traduit CAR en CHR au lieu de CHAR

et oublié de changer les ; en ,

Ce qui donne pour .Formula :

ActiveCell.Formula = _
"=(INDIRECT(""" & Feuille5M & "!""&CHAR(64+HLOOKUP(C$3," & Feuille5M & "!$C$1:$V$3,2,FALSE))&(ROW(C4)-1))-Feuil3!C$1)/(Feuil3!C$2-Feuil3!C$1)*100"

Comme j'ai l'impression qu'elle est destinée à être tirée il vaut mieux rester en R1C1.

eric

bonjour Eric,

si j'étais resté en français avec FormulaLocal, j'aurais eu moins de problèmes

Cordialement

--

Gilles

Rechercher des sujets similaires à "probleme formule vba"