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 :

Optimisation d'une macro lente


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut Optimisation d'une macro lente
    Salut la compagnie,

    J'ai une toute petite macro qui devient de plus en plus lent au fil du temps.
    Je fais donc appel à vous pour voir s'il y a quelque chose à faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub EcritureLOG(P_Classeur, P_Message1, P_Message2, P_Message3, P_TypeErreur)
    'Ecriture d'un message dans le feuille LOG
        WMemo_Classeur = ActiveWorkbook.Name
        WMemo_Feuille = ActiveWorkbook.ActiveSheet.Name
        Workbooks(P_Classeur).Activate
        Sheets("LOG").Select
        WDerniereLigne = ActiveCell.SpecialCells(xlLastCell).Row
        WDerniereLigne = WDerniereLigne + 1
        Cells(WDerniereLigne, 1).Value = Format(Time(), "hh:mm")
        Cells(WDerniereLigne, 2).Value = P_TypeErreur
        Cells(WDerniereLigne, 3).Value = P_Message1
        Cells(WDerniereLigne, 4).Value = P_Message2
        Cells(WDerniereLigne, 5).Value = P_Message3
        Workbooks(WMemo_Classeur).Activate
        Sheets(WMemo_Feuille).Select
    End Sub
    D'après ce que j'ai pu voir, c'est la partie qui remplie les cellules qui est de plus en plus lente et je ne comprends pas pourquoi ?

  2. #2
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    bonjour

    bien que je n'aurais pas fait comme ca pour moi il n'y a rien qui ralenti ton code au fur et a mesure
    a mon avis ca proviens plutôt des données message que tu inscrit dans tes cellules

    comment obtiens tu ces données regarde plutôt de ce coté la

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut petite optimisation
    Bonjour,

    La seule optimisation que je vois est sur ces deux lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    WDerniereLigne = ActiveCell.SpecialCells(xlLastCell).Row
    WDerniereLigne = WDerniereLigne + 1
    Que tu pourrais fusionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WDerniereLigne = ActiveCell.SpecialCells(xlLastCell).Row + 1
    Cette "optimisation" sera à peine visible, mais si ta fonction est souvent appelée, ça peut jouer. Sinon, comme le suggère patricktoulon, ça doit plutôt venir de tes données.

    Bonne journée!

  4. #4
    Membre éprouvé Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 327
    Par défaut
    Merci pour votre aide, mais les messages sont tout simplement passés en paramètres.
    Je ne m'explique pas pourquoi, au fure et à mesure des exécutions, la macro ralentie de plus en plus.

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 27
    Par défaut
    Et quels sont tes paramètres? Es-tu sûr qu'ils ne grossissent pas à chaque appel?

  6. #6
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Salut,
    N'est ce pas ton fichier log qui devient de plus en plus gros ? Y a-t-il entre 2 un save ?
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

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

Discussions similaires

  1. [XL-2010] Optimisation d'une macro de recherche et copie
    Par alcalis16 dans le forum Excel
    Réponses: 5
    Dernier message: 09/07/2015, 10h00
  2. [XL-2007] Optimisation d'une macro + Application à tous les onglets
    Par Identifiant75 dans le forum Excel
    Réponses: 53
    Dernier message: 05/05/2015, 19h23
  3. Exécution d'une macro lente
    Par rickgoz dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/02/2010, 20h02
  4. optimisation d'une macro
    Par Alphonss dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 29/10/2009, 15h07
  5. probleme d'optimisation d'une macro
    Par ylabarre dans le forum VBA Outlook
    Réponses: 5
    Dernier message: 28/09/2007, 16h40

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