Partager via

temps exécution macro

Anonyme
2018-03-04T05:04:39+00:00

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

Microsoft 365 et Office | Excel | Pour la maison | Windows

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.

0 commentaires Aucun commentaire

7 réponses supplémentaires

  1. Anonyme
    2018-03-05T07:09:29+00:00

    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

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  2. DanielCo 107.7K Points de réputation
    2018-03-04T11:07:37+00:00

    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

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  3. Anonyme
    2018-03-04T09:59:37+00:00

    merci JuanLucas, malheureusement je connaissais l'astuce de ne pas rafraîchir l'écran et elle figure déjà dans mes macros

    cordialement

    Richard

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire
  4. Anonyme
    2018-03-04T08:42:20+00:00

    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

    Cette réponse a-t-elle été utile ?

    0 commentaires Aucun commentaire