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 VBA Excel 2010


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut Lenteur VBA Excel 2010
    Bonjour,

    Je vous explique briévement mon problème.

    J'ai développé pour un client des macros sur Excel 2003, les temps de traitements sont optimisés (vérouillage de l'écran, peu de select,...). Jusque là pas de problème.

    Mon client a décidé d'installé Office 2010 sur tous c'est postes donc conversions de tous les fichiers et modifications des macros pour qu'elles continuent de fonctionner.
    Le problème est que les temps de traitement sont maintenant multipliés par 4 ou 5 alors les macros sont identiques ou presque.

    Quelqu'un aurait-il une explications à ceci (VBA 2010 plus lent, bugs connus,...)

    Merci d'avance pour votre aide.

    Cordialement,

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Excel 2003 a 65 k lignes excel 2010 1 million... Il nous faudrait voir tes macros pour pouvoir voir ce qui pourrait provoquer un tel comportement

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Mes macros sont composés de dizaines de milliers de lignes dans différents fichiers et sont en plus confidentielles. Donc cela va être compliqué de vous les communiquer.

    Mais le problème n'est pas dans le code lui même car avant la migration vers 2010 tous les traitements étaient rapide.

    Je suis d'accord que le nombre de lignes et colonnes et plus important mais la taille des fichiers est beaucoup importante quand on utilise le format .xlsb par rapport a .xls. De plus le nombre de cellules n'a pas vraiment d'importance car je désactive les calculs lors de mes tratiements.

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Que font tes traitements...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Composition de l'applicatif (en bref) :

    - Un fichier avec montant de CA répartis par Compte Comptable, région,...
    - Un fichier contenant la hiérarchie des région Niveau 1, Niveau2,..., Niveau 6
    - Un fichier contient une maquette vierge avec un onglet composé du tableau modèle vierge et d'un onglet contenant la ligne de destination des Comptes Comptables dans ce tableau.

    En gros le programme principal créer autant de fichier que de Région (selon Niveau choisit) à partir de la maquette, récupérer les montants dans le fichier de CA et les écrit dans les fichiers de chaque Région. (Construction d'une seul Région à la fois pour ne pas avoir une multitude de fichier ouvert an même temps)

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    La création d'un xls et un xlsb ne devrait pas ralentir de 4x la macro... Il faudrait que tu places des timer dans tes macros pour voir où le décalage a lieu afin de cibler le problème.

  7. #7
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour.
    Citation Envoyé par EngueEngue Voir le message
    Excel 2003 a 65 k lignes excel 2010 1 million... Il nous faudrait voir tes macros pour pouvoir voir ce qui pourrait provoquer un tel comportement


    Je penche aussi vers une mauvaise programmation !

    Par exemple du genre parcours d'une colonne entière au lieu de la plage utilisée de la colonne.

    Qui plus est cellule par cellule au lieu d'utiliser une variable tableau …

    Mais comme confidentiel le code est , tout seul tu es …

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Citation Envoyé par Marc-L Voir le message
    Bonjour.


    Je penche aussi vers une mauvaise programmation !

    Par exemple du genre parcours d'une colonne entière au lieu de la plage utilisée de la colonne.

    Qui plus est cellule par cellule au lieu d'utiliser une variable tableau …

    Mais comme confidentiel le code est , tout seul tu es …

    Le classeur que j'ai mis en pièce jointe ,je le répète ne sert que d'exemple pour comparer la vitesse de traitement entre 2003 et 2010.
    Il ne fait en aucun cas partie des applications que je développe qui elles sont optimisés (traitement des fichier en mémoire par variable tableau multidimensionnel et non pas une malheureuse lecture ligne à ligne des fichiers, limité au maximum les accés fichier->VBA VBA->fichier, mise à jour de l'ecran bloqué, déclarations de toutes les variables, libération de la mémoire en fin d'exécution, etc...).

    Ma question n'est pas comment puis-je optimiser mon code pour qu'il s'exécute plus rapidement mais si quelqu'un et au courant de problème ou de spécificité sur la version 2010 de Excel à propos des traitements VBA.

    Cordialement,

  9. #9
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut

    Je préfère, t'aurais pu nous mettre un zoli code !

    Par souci de maintenance d'anciens applicatifs, j'ai toujours une version 2003 sur laquelle je continue de développer

    même pour des versions supérieures, et jusqu'à présent, je n'ai pas rencontré ce souci …

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Le fait d'insérer une ligne ou d'en supprimer et les copiers collers sont plus gourmands sur excel 2007+ du fait de classeurs avec 1 M de lignes plutôt que 65k... Pour remédier à ce problème de programmation de bas étage il est possible d'activer l'option:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.DisplayPageBreaks = True

Discussions similaires

  1. vba excel 2010 bug workbooks().close
    Par goofyy dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/12/2012, 17h26
  2. Valeur et non l'id d'un item d'une dropdown list vba excel 2010
    Par thibauc dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/07/2012, 09h50
  3. [XL-2010] Archivage VBA excel 2010
    Par Radaghast dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2012, 01h09
  4. [XL-2010] Cours VBA excel 2010
    Par sthiteng dans le forum Excel
    Réponses: 2
    Dernier message: 07/03/2012, 13h44
  5. [XL-2010] VBA Excel 2010 pb informations licence introuvables
    Par degateau dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/02/2012, 16h07

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