FormulaArray erreur 1004

Bonjour,

Mon problème est le suivant :
J'essaie d'écrire une formule matricielle dans une cellule en VBA mais le message d'erreur "Erreur d'exécution '1004' : Impossible de définir la propriété FormulaArray de la classe Range" s'affiche.

J'ai cru comprendre que cela était dû à un nombre trop important de caractères.
J'ai également lu que l'on pouvait contourner le problème en utilisant .Replace

J'ai donc testé le code suivant :
With Sheets("Transition").Cells(2, 2)
.FormulaArray = "=SUM(mfb ,msb)"
.Replace What:="mfb", Replacement:=Freplacement
.Replace What:="msb", Replacement:=Sreplacement
End With


où Freplacement et Sreplacement sont des chaînes de caractère contenant des formules matricielles mais ce code ne fait absolement rien.. Ma cellule contient =SOMME(mfb,msb) après exécution.

Pourriez-vous m'aidez,

Merci d'avance.

Configuration: Windows / Chrome 71.0.3578.98

3 réponses

  1. Contributeur
    bonjour, as-tu essayé en ajoutant
    LookAt:=xlPart
    au replace?
    1. Oui j'ai essayé, malheureusement, le résultat est le même.
      1. Contributeur
        Ta cellule contient
        =SOMME(mfb,msb)
        après exécution?
        peux-tu partager ton fichier?
      2. Ma cellule contient
        {=SOMME(mfb,msb)}
        après exécution de la macro.
        Je ne sais pas comment partager des fichiers ici.

        Edit : Par ailleurs, si j'ai recours à
        .Formula
        au lieu de
        .FormulaArray
        la modification s'effectue bien. Mais il faut que je retourne sur la feuille et que j'appuie sur ctrl+shift+entrée pour rendre la formule matricielle.
      3. Contributeur
        @Prawpour partager un fichier: tu publies le fichier sur internet (google drive, cjoint.com, ...) puis tu partages le lien ici.
      4. D'accord, merci.
        Voici mon fichier : https://www.cjoint.com/c/IAqnQt2E0ow
    2. Contributeur
      Ne serait-il pas plus simple de faire les calculs en VBA, plutôt que d'utiliser des formules?
      1. Ce serait peut-être plus simple mais l'objectif est vraiment d'avoir les formules.
      2. Contributeur
        @Prawquelle partie des formules doit-elle être modifiée d'une fois à l'autre?
      3. Toutes les variables sont modifiées d'une exécution à une autre à l'exception de l'année qui boucle sur un ensemble d'années prédéfini.
      4. Contributeur
        ma question posait sur le texte de la formule, pas sur les valeurs des variables.
        au lieu de créer la formule chaque fois en VBA, il est peut-être possible de la créer une seule fois, et, à partir de VBA, d'y faire quelques modifications.
      5. Le texte en soi reste identique.
        Et comment modifier la cellule sans passer par un .FormulaArray?