Bonjour à tous,
J'ai une problématique un peu particulière, qui paraît très étrange. Vous pouvez peut-être me dire si un cas similaire vous est déjà arrivé...
J'ai une macro assez lourde, pas spécialement bien codée car je débute. Disons qu'elle n'est pas optimisée.
En gros, la partie qui m'interroge est la suivante : je parcours des onglets Excel et je fais un export dans Word. Chaque onglet est constitué de 5 parties, ce sont des plages nommées dans Excel.
De temps en temps, je me retrouve avec des doc Word qui sont créés et où une des 5 parties n'est pas présente. J'ai l'impression (une impression étrange, je suis d'accord) que lorsque mon PC "rame un peu", la macro "oublie" des lignes de code. Si je lance la macro deux fois d'affilé, il se peut qu'une fois tout soit complet et une autre fois, des oublis. Sans avoir modifié quoi que ce soit. Pouvez-vous me dire si c'est possible ou complètement aberrant de penser que la macro oublie des choses...?
Voici le bout de code concerné, noyé au milieu du reste :
Merci beaucoup,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 For i = 10 To ThisWorkbook.Worksheets.Count ThisWorkbook.Sheets(i).Select If ThisWorkbook.Sheets(i).Range("A4").Value <> " " Then sNomRapport = ThisWorkbook.Sheets(i).Range("A1") & "_" & ThisWorkbook.Sheets(i).Name ThisWorkbook.Sheets(i).Range("Intro_" & i).Copy 'copie le tableau d'intro de chaque onglet Set wrdApp = CreateObject("Word.Application") 'ouvre une session Word wrdApp.Visible = False Set wrdDoc = wrdApp.Documents.Add 'crée un nouveau document wrdApp.Selection.Paste ThisWorkbook.Sheets(i).Range("Recap_" & i).Copy 'copie le tableau de chaque onglet wrdDoc.Paragraphs.Add 'ajoute un paragraphe de type ligne blanche wrdDoc.Paragraphs(wrdDoc.Paragraphs.Count).Range.Paste 'colle après le paragraphe ThisWorkbook.Sheets(i).Range("Graphs_" & i).CopyPicture 'copie en image les graphiques de chaque onglet wrdDoc.Paragraphs.Add 'ajoute un paragraphe de type ligne blanche wrdDoc.Paragraphs(wrdDoc.Paragraphs.Count).Range.PasteAndFormat (wdChartPicture) 'colle en image les graphiques après le paragraphe ThisWorkbook.Sheets(i).Range("NC_" & i).Copy 'copie l'encadré NC wrdDoc.Paragraphs.Add 'on ajoute un paragraphe wrdDoc.Paragraphs(wrdDoc.Paragraphs.Count).Range.Paste 'on le colle après le paragraphe ThisWorkbook.Sheets(i).Range("Conclusion_" & i).Copy 'copie l'encadré des commentaires wrdDoc.Paragraphs.Add 'ajoute un paragraphe (une ligne blanche) wrdDoc.Paragraphs(wrdDoc.Paragraphs.Count).Range.Paste 'colle après le paragraphe
Alexis
(Et bien sûr, j'ai un "next i" à la fin...)
Partager