Macro trop lente, optimisation du code

Macro trop lente, optimisation du code - VB/VBA/VBS - Programmation

Marsh Posté le 18-08-2016 à 14:23:29    

Bonjour,
 
Actuellement j'essaye de copier des tableaux excel et de les coller puis les mettre en forme sous word. Mais la macro est bien trop longue (environ 10 secondes)
Je debute sous vba, aussi je me suis renseigné à droite et à gauche pour reduire le temps des macros. J'ai desactivé de nombreuses choses notamment l'affichage. Mais je ne parviens pas à réécrire le code ci-dessous sans l'utilisation de la methode Selection (qui il me semble est très gourmande)
 
Voici une partie du code qui pose probleme
Pour comprendre "ma logique" vu que je debute..et que celà ressemble plus à du charcutage qu'autre chose, le document final doit ressembler à ça
Titre
Sous titre 1
Tableau 1
Sous titre 2
Tableau 2
Sous titre 3
Tableau 3  
 

Code :
  1. wordapp.Selection.TypeText (Titredudocument)
  2. worddoc.Paragraphs(1).Format.Alignment = 1
  3. worddoc.Paragraphs(1).Range.Font.Size = 18
  4. wordapp.Selection.TypeParagraph
  5. worddoc.Paragraphs(2).Range.Font.Size = 14
  6. worddoc.Paragraphs(2).Range.ParagraphFormat.SpaceAfter = 1
  7. worddoc.Paragraphs(2).Range.Font.Bold = True
  8. worddoc.Paragraphs(2).Format.Alignment = 0
  9. wordapp.Selection.TypeText (soustitretableau1)
  10. Range(Rangetableau1).Copy
  11. wordapp.Selection.Paste
  12. wordapp.Selection.TypeText (soustitretableau2)
  13. Range(Rangetableau2).Copy
  14. wordapp.Selection.Paste
  15. wordapp.Selection.TypeText (soustitretableau3)
  16. Range(Rangetableau3).Copy
  17. wordapp.Selection.Paste


 
Je vous remercie d'avance

Reply

Marsh Posté le 18-08-2016 à 14:23:29   

Reply

Marsh Posté le 18-08-2016 à 15:48:40    

Salut, qqs infos, peut-être,  ici : http://www.developpez.net/forums/d [...] post417934


Message édité par kiki29 le 18-08-2016 à 15:49:29

---------------
Myanmar 90/91 : http://gadaud.gerard.free.fr/publi [...] index.html
Reply

Marsh Posté le 18-08-2016 à 23:23:30    

merci pour le lien, j'ai eu pas mal d'informations..qui m'auraient aidé il y a quelques jours. Par contre, ça ne m'aide pas vraiment actuellement  :sweat:

Reply

Marsh Posté le 24-10-2016 à 21:05:04    

Utilise peut etre un dictionnaire ou un array? Si tu arrives toujours pas, peux tu mettre un fichier d'exemple?

Reply

Marsh Posté le 26-10-2016 à 10:56:52    

Dans Excel, essaye de désactiver le recalcul automatique des cellules. C'est peut-être ça qui ait perdre du temps.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed