Améliorer la vitesse de calcul d'une macro
Résolu
geo0258
Messages postés
20
Date d'inscription
Statut
Membre
Dernière intervention
-
geo0258 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
geo0258 Messages postés 20 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Augmenter la vitesse de calcul excel
- Comment calculer la moyenne sur excel - Guide
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Vitesse processeur - Guide
- Aller à la ligne excel - Guide
4 réponses
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?
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?
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)