|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() Raphael CORNIER-DELABROUILLEArchitecte technique Inscription : avril 2008 Messages : 20 ![]() |
Bonjour,
Je constate de nombreuses lenteurs de mes macros VBA écrite sous Word 2003 qui, une fois sous 2010, se retrouvent à ramer énormément. Mon dernier exemple en date est la suppression de 100 feuilles de styles personnalisées qui sont détruites quasi instantanément sous Word 2003 alors que cela prend presque une minute par style sous Word 2010 (cela dure environ 4 minutes pour effacer les 100 styles sous Word 2003 alors que cela prend presque 4 heures sous Word 2010). J'ai fait le test sur plusieurs postes avec Office 2010, Vista ou Windows Seven... Office 64 bits ou non... Et les macros vont bien plus vite sous Office 2003 que sous 2010... Quelqu'un aurait-il une réponse sur l'énigme sur cette lenteur d'Office 2010 qui ralentit énormément toutes les macros, ou presque? |
|
|
00
|
|
|
#2 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 339 ![]() |
Salut,
Sans le code, difficile de dire ce qui pourrait coincer. Je ne rencontre pas de problème de vitesse en ce qui concerne la vitesse d'exécution des macro sous 2010, même lorsqu'elles ont été écrite avec 2003.
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
10
|
|
|
#3 | ||
|
Candidat au titre de Membre du Club
![]() Raphael CORNIER-DELABROUILLEArchitecte technique Inscription : avril 2008 Messages : 20 ![]() |
Hello Heureux-oli, ravi que tu me répondes, merci. Je fais tourner ma macro en même temps sur la machine aussi n'ai-je pas le code dans l'immédiat mais il ressemble à ça: Code :
La macro s'arrête sur le Delete pendant bien plus d'une minute sous Word 2010 avant de passer au style suivant, alors que sous Word 2003 cela est résolu en quelques secondes... Dans quelques minutes je pourrai te passer le code exact mais il n'y a rien de plus que des codes debug.print pour voir où j'en suis... et sinon l'instruction Name pour un style n'est pas exactement celle là sous VBA |
||
|
|
00
|
|
|
#4 | ||
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 339 ![]() |
Salut,
Pour en avoir le coeur net, j'ai fait un test avec ton code. Il y a une erreur dans la propriété du style Name qui devient NameLocal en 2010. Le code tourne en moins d'une seconde pour supprimer quelques styles. Code :
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
||
|
|
10
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() Raphael CORNIER-DELABROUILLEArchitecte technique Inscription : avril 2008 Messages : 20 ![]() |
J'ai lancé mon script à 13H28 et il en est à supprimer le style n°173, alors qu'il est 21H50, ...
Quelque soit la machine roulant sous Word 2010 ca rame de folie sur ce passage de suppression des styles. Sous Word 2003 ca passe comme une lettre à la poste, pourtant. Merci pour ton essai, mais j'aimerais bien savoir ce qui peut bloquer Word 2010. Mon Document fait plus de 1000 pages A4 et certains des styles en question qui doivent être supprimés sont utilisés dans des paragraphes vides dans le document. Mais, quoi qu'il en soit, Word 2003 se débrouille bien plus rapidement, comme si la gestion des styles sous 2010 n'était plus du tout la même, comme s'il devait reconstruire tout le document parce qu'un style n'était plus là... |
|
|
00
|
|
|
#6 |
|
Candidat au titre de Membre du Club
![]() Raphael CORNIER-DELABROUILLEArchitecte technique Inscription : avril 2008 Messages : 20 ![]() |
Au final, ma macro aura mis :
- 01H18 sur un PC vieux de 6 ans avec Windows XP et Office 2003 - 12H44 sur un PC top de gamme avec Windows Seven et Office 2010. Il y a quand même un petit malaise sachant que la supression des styles n'est pas du tout la seule tache de l'opération et qu'elle aura mis à elle seule moins de 5 minutes sous Office 2003 contre 07H20 sous Office 2010. Que fait cette macro: - elle charge une interface qui propose de choisir un fichier xml à traiter - elle ouvre le fichier balisé Xml sélectionné - elle applique des styles colorisé en fonction de la balise xml pour mieux voir le niveau de profondeur des balises et agir en conséquence - elle applique des styles Word mis en forme en fonction du style couleur - elle construit les tableaux Word avec les balises Tbl, Row et Cell - elle supprime les styles couleur du document - elle traite les tableaux par l'ajour de tabulation avec points de conduite Au Final la supression des styles devrait être une formalité comparé aux autres traitements globaux et bien non, cela prend des heures et des heures sous Word 2010. |
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Olivier LebeauContrôleur d'industrie Inscription : février 2006 Messages : 17 339 ![]() |
Salut,
Tout ce que je peux te dire, c'est que pour supprimer quelques styles avec le code que tu nous as donné, ça n'a pas pris 1 seconde sous 2010 32 bits
__________________
J'ai pas encore de décodeur, alors, postez en clair ! Comment mettre une balise de code ? Débutez en VBA Mes articles Dans un MP, vous pouvez me dire que je suis beau, ... mais si c'est une question technique je ne la lis pas ! Vous êtes prévenus ! |
|
|
00
|
|
|
#8 |
|
Candidat au titre de Membre du Club
![]() Raphael CORNIER-DELABROUILLEArchitecte technique Inscription : avril 2008 Messages : 20 ![]() |
Accepterais-tu que je t'envoie la macro complète avec un fichier traitable?
Car le test que tu as dû faire ne devait pas prendre en compte 1000 pages ni des styles utilisés? Là, tu reverras forcément ta position si tu arrives à essayer sous Office 2003 puis sous 2010 qui est fichtrement beaucoup plus lent... à moins de faire des macros basiques. |
|
|
00
|
|
|
#9 | ||||
![]() ![]() JF JousseaumeInscription : octobre 2007 Messages : 2 390 ![]() |
Salut RafCorDel,
Je suis dans la lignée de Heureux-Oli et j'ai refais le test (en créant 150 styles dont la moitié seront à supprimer). C'est OK ==> du coup, j'ai testé avec du volume : j'ai créé un fichier de 1200 pages (avec renvois, tableaux, dessins, TdM, index, styles persos...) avec les 150 styles et j'ai appliqué le style "bal_135" à 3071 paragraphes et le "bal_55" à 240 paragraphes (du coup, j'ai quelques styles "bal_55" avec exposant dans mon document. Puis j'ai lancé la macro Code :
Code :
@+ |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com