Macro - Remplacer un élément d'une formule

Bonjour à tous, j'espère que vous allez bien

Alors aujourd'hui je suis à la recherche d'un moyen pour modifier un élément d'une formule sur une colonne ou sur une plage de donnée (si ça ne va pas via la colonne).

J'ai dans la plage "E15:E28" cette formule:

=SI(ESTNA(RECHERCHEV($B15;Bdn;18;FAUX));"";(RECHERCHEV($B15;Bdn;18;FAUX)))

J'aimerais lorsque je lance une macro (pas encore défini le nom) que cette formule soit mise à jour en remplaçant le "Bdn;18;FAUX" par "Bdn;16;FAUX".

J'ai utilisé cette méthode mais celle-ci ne marche pas, elle marche si je met le texte "Bdn;18;FAUX" dans une cellule, mais pas pour la formule ...

    Range("E15:E28").Select
    Selection.Replace What:="Bdn;16;FAUX", Replacement:="Bdn;18;FAUX", LookAt _
        :=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False

Merci pour votre aide.

Bonne journée

Bonjour,

Essayer :

Sub Reformuler()
    Dim c As Range, fml$
    Application.ScreenUpdating = False
    For Each c In ActiveSheet.Range("E15:E28")
        fml = Replace(c.FormulaLocal, ";18;", ";16;")
        c.FormulaLocal = fml
    Next c
End Sub

Cordialement.

Bonjour,

Merci pour votre réponse (remerciement tardif, je m'en excuse, j'étais en déplacement professionnel et ne me suis pas reconnecté depuis, je viens à peine d'essayer votre formule)

Par contre, je me rend compte qu'il faudrait plutôt intégrer une variable à la place du ";18;" car la valeur peut-être 16 / 17 ou 18 en fonction de ce que je fais, mais je n'arrive pas à l'intégrer (j'ai essayer avec la condition If en vain), pouvez-vous m'aider là-dessus ?

Merci et bonne journée ^^

Bonjour,

Si je relis bien le code que j'avais émis, il opére une modification de formule pour en remplacer un paramètre, en l'occurrence 18 par 16.

On est donc bien dans le cas où tu utilises VBA pour réaliser une modification dans une formule de feuille de calcul Excel.

Tu peux de la même façon par la suite, changer le 16 en 17, revenir à 18...

Si tu veux que ta formule soit pérenne, tu remplaces la définition en valeur de ce paramètre par une référence de cellule. La formule ne bougera plus, la valeur du paramètre sera affectée à la cellule indiquée. Et tu peux de la même façon le faire varier en modifiant la valeur de cette cellule, et en utilisant VBA pour cela. Plus simple d'ailleurs que ta technique initiale.

Il faut par contre que tu aies clairement conscience qu'une variable VBA n'a d'existence que dans la procédure VBA où elle est définie, et aucune dans la formule Excel. Il serait d'ailleurs préférable de ne pas utiliser le terme de variable dans Excel, cela crée des confusions...

Cordialement.

Rechercher des sujets similaires à "macro remplacer element formule"