Temps de traitement
Résolu
Cendrine
-
Vaucluse Messages postés 27336 Statut Contributeur -
Vaucluse Messages postés 27336 Statut Contributeur -
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...
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...
A voir également:
- Temps de traitement
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- Traitement de texte gratuit - Guide
- Ce logiciel gratuit et léger est parfait pour remplacer Word, même sur un vieux PC - Guide
- Renommer plusieurs fichiers en même temps - Guide
- Combien de temps reste une story sur facebook - Guide
2 réponses
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
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