IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Réduction du temps d’exécution d'une Macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2012
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 15
    Par défaut Réduction du temps d’exécution d'une Macro
    Bonjour,

    Voici mon problème: ma macro est beaucoup trop longue à s'exécuter alors qu'elle n'est pas encore finie et ceci est assez gênant pour mon cahier des charges. Apres avoir effectué des tests au chronomètre, j'en suis à 6minutes30 d'exécution. Ma macro est essentiellement constituée de boucles FOR. Sauriez vous comment je pourrais faire pour réduire le temps d'éxecution? j'avais penser à réunir toutes les conditions dans une seule bouche for mais ceci n'est pas très efficace de plus etant donné que mon programme est en phase de finalisation il me serais très difficile de le changer.

  2. #2
    Membre expérimenté Avatar de CODYCO
    Homme Profil pro
    Webplanneur
    Inscrit en
    Avril 2009
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 217
    Par défaut
    Réponse classique as tu déjà désactiver ces deux options :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.Calculation = xlCalculationManual
    Application.ScreenUpdating = False
    En début de macro et a réactivé à la fin...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Application.Calculation = xlCalculationAutomatic
    Application.ScreenUptading=True

  3. #3
    Membre expérimenté
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    191
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2012
    Messages : 191
    Par défaut
    Bonjour,

    J'aurais tendance à te répondre d'essayer de diminuer ton nombre de boucle FOR, si possible, surtout si celles-ci bouclent un nombre de fois important.
    Par exemple, si tu copie des plages de cellules, il existe une méthode ne nécessitant pas d'utiliser des boucles for.

    Cordialement.

  4. #4
    Membre expérimenté Avatar de CODYCO
    Homme Profil pro
    Webplanneur
    Inscrit en
    Avril 2009
    Messages
    217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Webplanneur
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 217
    Par défaut
    Oui exacte aussi sans parler du nombre de données à traiter...

  5. #5
    Membre Expert Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Par défaut
    Bonjour,
    difficile à vue de nez de t'aider si déjà tu ne montres pas le code.
    Ensuite peux-etre as-tu des select et activate qui vont réduire considérablement le temps d'exécution.

    ensuite selon ce que tu cherches avec tes boucles peux-être les remplacer par "Find" ou encore des boucles "Do while"

    voici quelques pistes...

  6. #6
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2005
    Messages : 96
    Par défaut
    Merci à tous pour vos reponses Codyco si tu était en face de moi je te ferai un gros bisou baveux tu viens de faire passer mon programme de 6minutes19 d'éxecution à 43secondes merci beaucoup

    Ces mises à jour d'affichage et de calculs sont vraiment un grand classique qui "bouffe" du temps... imaginez, à chaque changement, le programme tente de recalculer la ou les feuilles du classeur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/07/2015, 11h13
  2. [XL-2007] Optimisation temps execution d'une macro
    Par Ltspitfire dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 22/01/2015, 15h18
  3. [XL-2010] Diminuer le temps d’exécution d'une macro
    Par idate dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 22/04/2014, 09h18
  4. Comparer les temps d’exécution d'une requête
    Par Etanne dans le forum Développement
    Réponses: 15
    Dernier message: 13/11/2012, 06h26
  5. Allongement d'uin temps d'exécution d'une macro
    Par avanrill dans le forum Access
    Réponses: 2
    Dernier message: 06/03/2006, 19h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo