Ralentissement lié à une MFC

Résolu/Fermé
bennn89 Messages postés 8 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 11 août 2017 - 10 août 2017 à 18:59
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 - 11 août 2017 à 10:58
Bonjour,

Dans un fichier qui permet de gerer des commandes et notamment le pointage de celle ci a réception par le biais du code barre, j'ai crée une mise en forme conditionnelle sensé colorée la ligne de l'article quand il est reçu.

Les articles sont receptionnés dans un onglet "reception" en les bippant, ils sont lié a un nom de commande.
Dans l'onglet ou se trouvent les commandes ma mise en forme est sensé coloré les lignes en vert des articles recus.

Il y a deux criteres le nom de commande et le code barre, le nb d'articles recu est décompté et comparé aux nb des mêmes articles commandés dans la même commande, ce coup ci il y a une somme puisqu'une colonne quantité. si ceux ci sont égaux la ligne devient verte.

L'intervalle :
=$A:$N

La formule :

=SOMME.SI.ENS($E:$E;$A:$A;$A1;$L:$L;$L1)=NB.SI.ENS(RECEPTION!$C:$C;$L1;RECEPTION!$E:$E;$A1)

Cela marche tres bien mais ralentit de facon redibitoire la feuille alors mm quil ny a que 20 lignes. Est ce qu'il y a quelque chose à faire ou cette formule est definitivement trop complexe?

5 réponses

via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
10 août 2017 à 19:10
Bonjour

C'est bizarre

1° tu peux peut être limiter la plage d'execution des formules au lieu de la faire sur des colonnes entières comme E:E la faire sur E1:E1000 par ex

2° poste un exemple de ton fichier sur cjoint.com, fais créer un lien que tu copies et reviens coller ici , qu'on puisse voir si une amélioration est possible

Cdlmnt
Via
2
Raymond PENTIER Messages postés 58389 Date d'inscription lundi 13 août 2007 Statut Contributeur Dernière intervention 18 avril 2024 17 090
11 août 2017 à 03:30
Bonjour bennn89.

via55
a raison : ta formule fait des calculs sur 1 048 576 lignes en examinant chaque fois 5 cellules ! Même si tu n'as que 20 lignes renseignées, donc 100 cellules concernées par les fonctions SOMME.SI.ENS et NB.SI.ENS, les calculs se font, à chaque modification d'une cellule, sur la totalité des 5 242 880 cellules englobées dans tes plages de données ...
0
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
Modifié le 11 août 2017 à 08:46
Bonjour à tous les trois

Une autre idée : nommer tes plages utiles de façon dynamique >voir DECALER(..) qui ne contiendront alors que les lignes utilisées et qui se mettront à jour automatiquement lorsque tu ajouteras des lignes

Cdlmnt
0
bennn89 Messages postés 8 Date d'inscription mercredi 4 janvier 2012 Statut Membre Dernière intervention 11 août 2017
11 août 2017 à 09:35
J'ai en effet utilisé la fonction DECALER pour pour nommer des plages utiles et tout va dorénavant pour le mieux, merci à tous.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ccm81 Messages postés 10851 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 16 avril 2024 2 404
11 août 2017 à 10:58
De rien

Si c'est fini, peux tu mettre le sujet à résolu (en dessous du titre de ton premier message)

Bonne journée
0