Améliorer la vitesse de calcul d'une macro
Résolu/Fermé
geo0258
Messages postés
20
Date d'inscription
mercredi 25 janvier 2012
Statut
Membre
Dernière intervention
9 janvier 2019
-
Modifié le 9 nov. 2018 à 09:55
geo0258 Messages postés 20 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 9 janvier 2019 - 3 janv. 2019 à 19:03
geo0258 Messages postés 20 Date d'inscription mercredi 25 janvier 2012 Statut Membre Dernière intervention 9 janvier 2019 - 3 janv. 2019 à 19:03
A voir également:
- Augmenter la vitesse de calcul excel
- Calcul moyenne excel - Guide
- Vitesse processeur - Guide
- Liste déroulante excel - Guide
- Aller à la ligne excel - Guide
- Si et excel - Guide
4 réponses
fabien25000
Messages postés
673
Date d'inscription
mercredi 5 octobre 2016
Statut
Membre
Dernière intervention
28 juillet 2022
59
Modifié le 9 nov. 2018 à 16:01
Modifié le 9 nov. 2018 à 16:01
Bonjour,
en premier lieu, tu n'en parles pas donc tu peux utiliser
ça a pour effet d’exécuter le code sans que l'écran ne suive. Tous les calculs se font et une fois fait, l'écran s'actualise.. ça fait gagner un peu sur la rapidité d'exécution
tu en demandes beaucoup en même temps aussi, suivant les performances de ton ordi c'est sûr que ça peut être long...
as tu pensé à scinder ton tableau sur plusieurs feuilles qui se mettraient à jour uniquement sur
en premier lieu, tu n'en parles pas donc tu peux utiliser
Application.ScreenUpdating = Falseà mettre au début de ton code sans oublier de le rétablier à
Trueà la fin
ça a pour effet d’exécuter le code sans que l'écran ne suive. Tous les calculs se font et une fois fait, l'écran s'actualise.. ça fait gagner un peu sur la rapidité d'exécution
tu en demandes beaucoup en même temps aussi, suivant les performances de ton ordi c'est sûr que ça peut être long...
as tu pensé à scinder ton tableau sur plusieurs feuilles qui se mettraient à jour uniquement sur
Worksheet_Activate()? ça serait problèmatique pour toi?
9 nov. 2018 à 16:37
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Mais c'est quand même très long.
Pour la solution qui consiste à scinder le tableau en plusieurs:
Le truc c'est que lorsqu'il y a une mise à jour en feuille B je clic sur mon bouton pour alimenter la feuille A avec les mises à jour et/ou les nouvelles lignes rajoutées en feuille B. C'est seulement une fois que mes 149 critères sont calculés que ça me donne un résultat, en l'occurrence un prix pour un produit. Du coup même si je scinde en 3 ou 4 tableaux, le temps que chacun se remplisse les uns après les autres sera aussi long que de remplir une fois le gros tableau.
Tu ne sais pas si c'est possible de dire à toute une range que dans chaque cellule elle doit faire une rechercheV en fonction d'un critère qui est sur sa propre ligne? Plutôt que de dire a une cellule de faire une rechecheV, puis de passer à la cellule suivante, puis la suivante etc etc?
9 nov. 2018 à 16:51
J'ai déjà vu un code du type (pas sûr de la synthaxe) mais à part économiser des lignes de code, le programme passera toujuors dans toutes les cases
Désolé je n'ai pas trop de solutions à part changer d'ordi ou scinder ton fichier pour essayer de fluidifier un peu l'ensemble...
Je laisse la main (mais je continue à suivre pour ma culture)
9 nov. 2018 à 17:07