FormulaArray erreur 1004

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