Ajouter une formules matricielles dans une macro

Bonjour,

Je souhaite ajouter par Macro des formules Matricielles qui marche tres bien si je les valide pas Ctrl+Maj+Entree

mais qui me donne #NOM si je lance ma macro

exemple : {=SOMMEPROD((Order!$D$4:$D$10000=Stat!$A43)*(Order!$Y$4:$Y$10000))}

dans le code : Cells(x, y + 1).Formula = "{=SOMMEPROD((Order!$D$4:$D$10000=Stat!$A43)*(Order!$Y$4:$Y$10000))}"

merci

Fred

Bonjour,

en vba il faut utiliser les fonctions en anglais, et utiliser le séparateur , au lieu du ;

Tu peux utiliser l'enregistreur de macro pour traduire les fonctions.

Pour une fonction matricielle ça sera .FormulaArray, sans mettre les { }

Tu peux aussi mettre ta formule dans un nom calculé (la bonne cellule doit être sélectionnée lorsque tu crées ton nom si tu as des références relatives). Ta ligne devient :

Cells(x, y + 1).Formula = "=ton_nom"

eric

Merci Eriiiiiiic

Malheureusement, je ne comprends pas pourquoi cela ne marche pas :

Par exemple:

Cells(x, y + 1).FormulaArray = "=SOMMEPROD((Order!$D$4:$D$10000=Stat!$A" + LTrim(Str(x)) + ")*(Order!$Y$4:$Y$10000))"

As tu une idée?

Fred

eriiic a écrit :

Bonjour,

en vba il faut utiliser les fonctions en anglais, et utiliser le séparateur , au lieu du ;

Tu peux utiliser l'enregistreur de macro pour traduire les fonctions.

Pour une fonction matricielle ça sera .FormulaArray, sans mettre les { }

Tu peux aussi mettre ta formule dans un nom calculé (la bonne cellule doit être sélectionnée lorsque tu crées ton nom si tu as des références relatives). Ta ligne devient :

Cells(x, y + 1).Formula = "=ton_nom"

eric

SOMMEPROD ce n'est pas anglais.

Essaie avec sumproduct() ou sinon valide ta formule en enregistrement de macro pour avoir la traduction.

eric

thanks

eriiic a écrit :

SOMMEPROD ce n'est pas anglais.

Essaie avec sumproduct() ou sinon valide ta formule en enregistrement de macro pour avoir la traduction.

eric

Rechercher des sujets similaires à "ajouter formules matricielles macro"