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 :

Lenteur de la macro au changement de version Excel [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Par défaut Lenteur de la macro au changement de version Excel
    Bonjour à tous !

    Voilà, j'ai une macro qui tourne sur un fichier de plusieurs millier de lignes. Sur la version d'Excel 2010, la macro prenait plusieurs secondes, parfois quelques minutes à s'exécuter en entier. Mais depuis Excel 2016 ce temps d'exécution est passé à parfois plus d'une demi heure....

    quelqu'un saurait à quoi ça peut être du ? Je vous met le fichier en lien.
    Merci beaucoup
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Sans doute un effet de la loi de Wirth.
    https://fr.wikipedia.org/wiki/Loi_de_Wirth

    L'effet décrit par cette loi empirique est bien sûr décuplé si le matériel reste le même.

  3. #3
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Par défaut
    D'accord...

    Donc si je comprend bien, je ne peux pas faire grand chose pour revenir vers un temps d'exécution plus acceptable ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 683
    Par défaut
    Salut,
    Des gains de temps peuvent se trouver dans certaines petites choses, comme par exemple remplacer ce bloc (au hasard de ton code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 1).Value = "Modification"
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 2).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 2).Value
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 3).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 7).Value
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 4).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 4).Value
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 5).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 48).Value
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 6).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 29).Value
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 7).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 34).Value
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 8).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 51).Value
                Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET).Cells(MODIFICATION, 9).Value = Workbooks(SIMFILE).Sheets(SIMSHEET).Cells(SIM, 19).Value
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    dim wshM as WorkSheet, wshS as Worksheet
    Set wshM = Workbooks(SIMFILE).Sheets(MODIFICATIONSHEET)
    Set wshS = Workbooks(SIMFILE).Sheets(SIMSHEET)
    With wshM
                .Cells(MODIFICATION, 1).Value = "Modification"
                .Cells(MODIFICATION, 2).Value = wshS.Cells(SIM, 2).Value
                .Cells(MODIFICATION, 3).Value = wshS.Cells(SIM, 7).Value
                .Cells(MODIFICATION, 4).Value = wshS.Cells(SIM, 4).Value
                .Cells(MODIFICATION, 5).Value = wshS.Cells(SIM, 48).Value
                .Cells(MODIFICATION, 6).Value = wshS.Cells(SIM, 29).Value
                .Cells(MODIFICATION, 7).Value = wshS.Cells(SIM, 34).Value
                .Cells(MODIFICATION, 8).Value = wshS.Cells(SIM, 51).Value
                .Cells(MODIFICATION, 9).Value = wshS.Cells(SIM, 19).Value
    End With
    tu "perds" beaucoup de temps a repartir du classeur puis feuille puis cellule puis valeur
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel (3e édition)
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2017
    Messages : 3
    Par défaut
    D'accord, merci beaucoup pour ton aide

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

Discussions similaires

  1. Validité macros VBA dans future version Excel
    Par COTILLEC dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 15/09/2014, 21h40
  2. Changement de version EXCEL
    Par Chris171717 dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 05/03/2013, 16h01
  3. [XL-2010] Pbs avec macro suite changement version
    Par rico63 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 29/12/2011, 19h03
  4. [XL-2007] Ma macro ne fonctionne plus suite à un changement de version
    Par sebsrv dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 30/01/2011, 20h42
  5. [VBA-E]Lancer une macro sur changement de valeur cellule ?
    Par jeremiegrenoble dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 07/03/2006, 15h22

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