FormulaArray erreur 1004

Fermé
Praw - 14 janv. 2019 à 19:28
yg_be Messages postés 23349 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 26 novembre 2024 - 23 janv. 2019 à 21:31
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

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