Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Désolé :
http://www.excelitems.com/2010/12/optimize-vba-code-for-faster-macros.html
Daniel
Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
bonjour,
sous Excel ai des macros assez longues (avec I7 4 cœurs + 16 G0 Ram + dd SSD) elles demandent environ une minute.
1/ comment puis-je accélérer cela ?
2/ pour des macros plus légères (demandant 15 secondes) si je la relance la macro demande beaucoup plus de temps, si je la rerelance encore plus. Comment (sans fermer Excel et relancer le fichier) puis-je accélérer ?
cordialement
Famille de feuilles de calcul Microsoft avec des outils pour l’analyse, le graphique et la communication des données.
Question verrouillée. Cette question a été migrée à partir de la Communauté Support Microsoft. Vous pouvez voter pour indiquer si elle est utile, mais vous ne pouvez pas ajouter de commentaires ou de réponses ni suivre la question.
Réponse acceptée par l’auteur de la question
Merci Daniel, je vais essayer.
qu'entends-tu par "rétablis les valeurs initiales en fin de macro" ?
sont-ce les valeurs des variables publiques ou ?
En fait il faudrait que juste avant la fin des macros je mette : "Set Var = Nothing"
cordialement
Richard
Bonjour,
Pour t'aider plus efficacement, il faudrait voir le code. En règle générale, utilise, si possible, en début de macro :
Dim inCalculationMode As Integer
Application.ScreenUpdating = False
inCalculationMode = Application.Calculation
Application.Calculation = xlCalculationManual
Application.EnableEvents = False
et rétablis les valeurs initiales en fin de macro.
Evite les Select
Copie les grandes plages de cellules en mémoire (dans une variable tableau) si c'est possible.
Libère la mémoire dès que possible :
Set Var = Nothing
Pour une chaîne vide, utilise vbNullString plutôt que "".
Cordialement.
Daniel
merci JuanLucas, malheureusement je connaissais l'astuce de ne pas rafraîchir l'écran et elle figure déjà dans mes macros
cordialement
Richard
Bonjour
Personnellement j'utilise cette petite astuce dans mes macros qui consiste à ne pas rafraichir l'écran pendant l'exécution.
Par contre en ce qui concerne l'augmentation du temps entre chaque relance je n'ai pas d'idée.
Testes déjà l'astuce et peut être que ton problème va disparaitre.
https://www.excel-pratique.com/fr/astuces_vba/screenupdating.php