Temps de traitement

Résolu/Fermé
Cendrine - Modifié le 25 mai 2018 à 12:31
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 - 25 mai 2018 à 12:31
Bonjour,
J'utilise un classeur avec les onglets suivants:
- prix pour client A
- prix pour client B
- prix pour client C
- BDD articles extraite de mon logiciel de gestion commerciale au format Excel.
Pour compléter mes onglets "prix pour client..." j'ai réalisé, non sans mal, une petite formule matricielle.
En voici une:
{=SI(ESTNA(SI(INDEX(Extract_EBP!N:N;EQUIV(C315&"Tarif pour la famille client 01"&9;Extract_EBP!Y:Y&Extract_EBP!B:B&Extract_EBP!K:K;0))=0;"";INDEX(Extract_EBP!N:N;EQUIV(C315&"Tarif pour la famille client 01"&9;Extract_EBP!Y:Y&Extract_EBP!B:B&Extract_EBP!K:K;0))));SI(INDEX(Extract_EBP!N:N;EQUIV(C315&"Tarif pour la famille client 01"&1000;Extract_EBP!Y:Y&Extract_EBP!B:B&Extract_EBP!K:K;0))=0;"";INDEX(Extract_EBP!N:N;EQUIV(C315&"Tarif pour la famille client 01"&1000;Extract_EBP!Y:Y&Extract_EBP!B:B&Extract_EBP!K:K;0)));SI(INDEX(Extract_EBP!N:N;EQUIV(C315&"Tarif pour la famille client 01"&9;Extract_EBP!Y:Y&Extract_EBP!B:B&Extract_EBP!K:K;0))=0;"";INDEX(Extract_EBP!N:N;EQUIV(C315&"Tarif pour la famille client 01"&9;Extract_EBP!Y:Y&Extract_EBP!B:B&Extract_EBP!K:K;0))))}

Le problème est que chaque fois que je veux faire une modification, ne serait-ce que de mise en page, sur mes onglets "prix pour client...", le temps de traitement est long, très long......

Est-il possible de raccourcir ce temps de traitement? je suppose via quelque chose genre une macro VBA ou un TCD?
Merci pour vos lumières...

2 réponses

Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
25 mai 2018 à 11:45
Bonjour
Sans approfondir votre formule, mais en règle générale,une formule matricielle est lourde et prend du temps. Toutefois pour alléger le système, mieux vaut ne pas utiliser des adresses de colonnes complètes comme Y:Y par exemple, qui fait travailler le système sur plus d'un million de lignes
mieux vaut le limiter à peine au delà de la hauteur utile avec les n° de lignes (par exemple: Y2:Y5000
ça devrait alléger un peu.
Pat ailleurs pour éviter la répétition de la formule en cas d'erreur, au li_eu de SI(ESTNA.(formule);"";formule)
écrivez (à partir d'Excel 2007 seulement)
=SIERREUR(formule complète);"")
crdlmnt
2
Bonjour Vaucluse,
Rien qu'en "bornant" mes plages à $x$1:$x$5000 c'est le jour et la nuit!!!
Merci beaucoup....
je vais pouvoir avancer à mon rythme maintenant!!
Bonne journée
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 418
25 mai 2018 à 12:31
Pas de quoi
je passe le sujet en résolu
bonne route
crdlmnt
0