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?
    0
    1. Oui j'ai essayé, malheureusement, le résultat est le même.
      0
      1. Contributeur
        Ta cellule contient
        =SOMME(mfb,msb)
        après exécution?
        peux-tu partager ton fichier?
        0
      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.
        0
      3. Contributeur
        @Prawpour partager un fichier: tu publies le fichier sur internet (google drive, cjoint.com, ...) puis tu partages le lien ici.
        0
      4. D'accord, merci.
        Voici mon fichier : https://www.cjoint.com/c/IAqnQt2E0ow
        0
    2. Contributeur
      Ne serait-il pas plus simple de faire les calculs en VBA, plutôt que d'utiliser des formules?
      0
      1. Ce serait peut-être plus simple mais l'objectif est vraiment d'avoir les formules.
        0
      2. Contributeur
        @Prawquelle partie des formules doit-elle être modifiée d'une fois à l'autre?
        0
      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.
        0
      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.
        0
      5. Le texte en soi reste identique.
        Et comment modifier la cellule sans passer par un .FormulaArray?
        0