Erreur 1004 lors de l'insertion d'une formule avec VBA

Bonjour tout le monde !

Je souhaite insérer dans une cellule la formule suivante à l'aide d'un code VBA :

=SIERREUR(
(
((E15 * (1 + ((SIERREUR((RECHERCHEV(A15;INDIRECT("Objectif!$A$"&(SIERREUR(LIGNE(INDEX(Objectif!BB:BB;EQUIV(PARAM!$B$29;Objectif!BB:BB;0)))+1;1))):Objectif!$Z$999725;3;1));(PARAM!ObjMax)))/100)))
-
(E15))
*
((SIERREUR((RECHERCHEV(A15;INDIRECT("Objectif!$A$"&(SIERREUR(LIGNE(INDEX(Objectif!BB:BB;EQUIV(PARAM!$B$29;Objectif!BB:BB;0)))+1;1))):Objectif!$Z$999725;3;1));(PARAM!ObjMax)))/100)
);

E15 doit être remplacé par E" & ligne & " et A15 doit être remplacé par A" & ligne & "

J'ai essayé avec ce code ci-dessous, mais j'obtiens une erreur "1004" (sans doute due à une mauvaise gestion des parenthèses avec INDIRECT) :

Sheets(ma_feuille).Range("diff").Range("A" & ligne).Formula = "=IFERROR((((E" & ligne & " * (1 + ((IFERROR((VLOOKUP(A" & ligne & ",INDIRECT(" & ""Objectif!$A$"" & "&(IFERROR(ROW(INDEX(Objectif!BB:BB,MATCH(PARAM!$B$29,Objectif!BB:BB,0)))+1,1))):Objectif!$Z$999725,3,1)),(PARAM!ObjMax)))/100)))-(E" & ligne & "))*((SIERREUR((RECHERCHEV(A" & ligne & ",INDIRECT(" & ""Objectif!$A$"" & "&(SIERREUR(ROW(INDEX(Objectif!BB:BB,MATCH(PARAM!$B$29,Objectif!BB:BB,0)))+1,1))):Objectif!$Z$999725,3,1)),(PARAM!ObjMax)))/100)),0)"

Je bloque là malheureusement. Un grand merci par avance de votre aide. Je vous souhaite par ailleurs de belles fêtes !

Une autre piste avec ce code (pas encore testé) :

Sheets(ma_feuille).Range("diff").Range("A" & ligne).Formula = "=IFERROR((((E" & ligne & " * (1 + ((IFERROR((VLOOKUP(A" & ligne & ",INDIRECT(""Objectif!$A$""&(IFERROR(ROW(INDEX(Objectif!BB:BB,MATCH(PARAM!$B$29,Objectif!BB:BB,0)))+1,1))):Objectif!$Z$999725,3,1)),(PARAM!ObjMax)))/100)))-(E" & ligne & "))*((SIERREUR((RECHERCHEV(A" & ligne & ",INDIRECT(""Objectif!$A$""&(SIERREUR(ROW(INDEX(Objectif!BB:BB,MATCH(PARAM!$B$29,Objectif!BB:BB,0)))+1,1))):Objectif!$Z$999725,3,1)),(PARAM!ObjMax)))/100)),0)"

Bonsoir aargol,

Quelle est votre VRAI formule de départ

A+

Bonjour,

Un essai

' Auteur : https://www.linkedin.com/in/spilerstheo/

Sub InsererFormule()
    Dim ma_feuille As String
    Dim ligne As Long

    ma_feuille = "NomDeVotreFeuille" ' Remplacez par le nom de votre feuille
    ligne = 1 ' Remplacez par le numéro de la ligne désirée

    Sheets(ma_feuille).Range("A" & ligne).Formula = "=IFERROR(" & _
        "(((E" & ligne & " * (1 + ((IFERROR((VLOOKUP(A" & ligne & ",INDIRECT(""Objectif!$A$"" & " & _
        "(IFERROR(ROW(INDEX(Objectif!BB:BB,MATCH(PARAM!$B$29,Objectif!BB:BB,0)))+1,1)),FALSE)):Objectif!$Z$999725,3,FALSE)),(PARAM!ObjMax)))/100)))-(E" & ligne & "))" & _
        "*((IFERROR((VLOOKUP(A" & ligne & ",INDIRECT(""Objectif!$A$"" & " & _
        "(IFERROR(ROW(INDEX(Objectif!BB:BB,MATCH(PARAM!$B$29,Objectif!BB:BB,0)))+1,1)),FALSE)):Objectif!$Z$999725,3,FALSE)),(PARAM!ObjMax)))/100),0)"
End Sub

Cordialement,
Parrish

Rechercher des sujets similaires à "erreur 1004 lors insertion formule vba"