réduire une formule matricielle.

TheProdigy

XLDnaute Impliqué
Bonsoir tout le monde,

J'ai une formule qui me comble parfaitement sauf qu'elle est longue à exécuter elle alourdit l'exécution.

Code:
=+SI(ESTERR(SOMMEPROD(($A7=Mutuelle)*($C7=Aff.1)*($D7=Aff.2)*($B7=Libelle)*(F$6=Date)*((operation="achat")+(operation="achattransfert"));Quantite)-SOMMEPROD(($A7=Mutuelle)*($C7=Aff.1)*($D7=Aff.2)*($B7=Libelle)*(F$6=Date)*((operation="vente")+(operation="ventetransfert"));Quantite));0;SOMMEPROD(($A7=Mutuelle)*($C7=Aff.1)*($D7=Aff.2)*($B7=Libelle)*(F$6=Date)*((operation="achat")+(operation="achattransfert"));Quantite)-SOMMEPROD(($A7=Mutuelle)*($C7=Aff.1)*($D7=Aff.2)*($B7=Libelle)*(F$6=Date)*((operation="vente")+(operation="ventetransfert"));Quantite))+E7

Est-ce qu'il y une solution plus rapide le fichier est devenu trés trés long.

Merci à tous.
 
C

Compte Supprimé 979

Guest
Re : réduire une formule matricielle.

Salut Adilprodigy ;)

2 solutions

1) empêcher le recalcul automatique
Menu -> Outils -> Options
Onglet Calcul -> cocher : sur ordre

2) mettre ta formule dans VBA
Et mettre un bouton sur ta feuille qui fera le calcul seulement quand tu en as besoins

a+
 

Tibo

XLDnaute Barbatruc
Re : réduire une formule matricielle.

Bonjour adil, salut Bruno,

Adil, tes plages nommées sont-elles nommées de façon dynamique (avec la fonction DECALER) ?

Cela permet d'adapter au plus juste la taille des plages et donc d'optimiser le temps de recalcul.

Tu nous dis que le fichier est devenu très très long. Ca veut dire combien de lignes ?

A te (re)lire avec ces quelques détails

@+

Edit : je vois que tu as un double SOMMEPROD. Peut-être peut-on gérer le test d'erreur autrement. Mais pour ça, il faudrait que tu nous joignes un extrait de ton fichier (un extrait d'une trentaine de lignes devrait être suffisant, extrait sur lequel tu nous mets une ou deux lignes avec erreur (ESTERR)

@+
 
Dernière édition:

hoerwind

XLDnaute Barbatruc
Re : réduire une formule matricielle.

Bonjour, salut Bruno et Tibo,

En nommant (menu Insertion - Nom - Définir) les deux premiers SOMMEPROD, par exemple achat et vente, la formule deviendrait :
=SI(ESTERR(achat-vente);0;achat-vente+E7)
Ce qui réduit les fonctions matricielles (par deux).

Mais comme le suggère notre ami Tibo, avec un exemple en pièce jointe il y a peut-être moyen de faire mieux
 

Tibo

XLDnaute Barbatruc
Re : réduire une formule matricielle.

Bonsoir,

Le nombre de formules basées sur la fonction SOMMEPROD est très (trop) important.

Tes plages nommées sont définies avec la fonction DECALER. Ok, très bien. Mais les données correspondantes sont dans un autre fichier...

En ce qui concerne le ESTERR, il faudrait savoir ce qui génère l'erreur pour peut-être alléger ce SOMMEPROD.

Reviens avec un fichier unique (dans lequel seraient réunies les données de ton autre fichier). Pas besoin de nous mettre le fichier complet, ce qui permettrait de le joindre ici zippé.

A te (re)lire

@+
 

Statistiques des forums

Discussions
312 201
Messages
2 086 172
Membres
103 152
dernier inscrit
Karibu