|
Publicité ' | ||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Inscription : août 2006 Messages : 20 ![]() |
Bonjour à tous.
Je vous présente ici un problème que je ne parviens pas à résoudre vu mon niveau de débutant en VBA. J'ai préparé une macro qui effectue un balisage via des opérations de chercher/remplacer en nombre très important dans des documents Word pouvant atteindre plusieurs centaines de pages... Sur PC, la macro fonctionne presque correctement, un message préviens que les ressources mémoires étant insuffisantes, aucune annulation ne pourra être effectuée, mais la macro continue son travail... Sur Mac, une erreur se produit et l'exécution de ma macro est interrompue... (ce n'est pas un problème de RAM, les deux machines sont équipées de 2 Gigas de Ram, je pense plutôt à un problème chez Word). Sans même parler du fonctionnement de VBA qui est très différent entre la version PC (WORD 2003) et mac (Word 2004), je pense que mes macros sont très lourdes et pourraient être optimisées... Voici le code de mes Macros : En premier, je balise le texte en italique... Code :
Code :
Code :
Une dernière chose, je cherche un moyen fiable pour supprimer les styles non utilisés dans mon document. J'ai trouvé cette macro, mais elle fonctionne de façon sporadique, un coup ça marche, un coup non... "oStyle" génère parfois des erreurs, sur PC comme sur Mac... Code :
|
||||||||
|
|
00
|
|
|
#2 |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Un élément de réponse : Quand tu fais des remplacements, Word les garde en mémoire pour un éventuel retour en arrière. Une option permet de l'éviter. Tu cherches, en attendant que quelqu'un qui l'a en tête te l'indique, ou qu'elle me revienne en mémoire
Bonne chance |
|
|
00
|
|
|
#3 | |
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Un autre élément de réponse : Regarde ClearFormatting dans l'aide.
Si tu fais Citation:
|
|
|
|
00
|
|
|
#4 |
|
Inactif
Inscription : décembre 2005 Messages : 3 784 ![]() |
Une idée (idiote , sans doute... ??)...
Word libère beaucoup de la mémoire utilisée lors de modifications lorsque l'on enregistre le fichier. Un enregistrement intermédiaire pourrait alors être "salutaire". |
|
|
00
|
|
|
#5 | |||||
|
Invité de passage
![]() Inscription : août 2006 Messages : 20 ![]() |
Citation:
Mon traitement étant réalisé par plusieurs macros (je sais par expérience qu'il vaut mieux lancer susccessivement plusieurs petites macros plutôt qu'une seule) j'ai intercalé Code :
Code :
Erreur d'exécution 5250 Ce document fait l'objet d'un trop grand nombre de modifications. Cette opération sera incomplète. Enregistrez votre document. Puis j'ai les boutons : Continuer [Grisé] - Fin - Débogage - Aide Le débogage renvoie vers une ligne Selection.Find.Execute Replace:=wdReplaceAll ... J'espère que ça va faire avancer le schmilblick... Merci pour les autres réponses ouskel'n'or, je vais chercher du côté de ces pistes... D'ores et déjà merci pour votre aide... |
|||||
|
|
00
|
|
|
#6 | ||
|
Inactif
Inscription : février 2005 Messages : 12 466 ![]() |
Désolé, je n'ai pas retrouvé. J'ai dû rêvé, ça m'arrive...
Par contre, et à défaut de trouver mieux, en plus de la solution de jmf, tu pourrais travailler page après page. Au début, tu te place en début de doc Puis tu sélectionnes jusqu'à la page suivante pour faire tes remplacements Code :
|
||
|
|
00
|
|
|
#7 | ||
|
Invité de passage
![]() Inscription : août 2006 Messages : 20 ![]() |
Bonjour à tous !
la solution n'est pas venu de ce forum mais de celui de Hardware.fr sur lequel j'avais également posté... L'excellent "pyrof" m'a répondu et m'a donné la solution suivante qui fonctionne parfaitement ! (exemple pour l'italic) Je la délivre ici en espérant qu'elle pourra servir à d'autres membres du forum... Code :
____________ Une devise qui n'est pas de moi (mais que j'aime bien) Si tu ne sais pas, demande, mais si tu sais, partage... |
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com