Bonjour à tous,

Je fais appel à votre aide car je bloque sur un point que je n'arrive pas à résoudre :

Mon code doit copier en séquentiel les 25 graphiques de la feuille active. s'il y'a des graphiques dans d'autres feuilles, ils seront copiés vers word en fonction des signets dans Word.
Mon code ouvre le fichier Word et commence à faire un traitement et bug à 25. Je m'apérçois que les graphiques ne sont pas copiés.

Merci pour votre aide.


Cordialement

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
Sub Export_graph_Word()
 
Dim wdApp As New Word.Application
Dim wdDoc As Word.Document
Dim Nom_doc As String
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim Deb As Integer
Dim Fin As Integer
 
    Application.ScreenUpdating = False
    wdApp.ScreenUpdating = False
 
    Nom_doc = Application.GetOpenFilename(FileFilter:="Word.Document(*.docx;*.doc),*.docx;*.doc", Title:="S?lectionnez un document Word") 'permet d'ouvrir une fen?tre pour d?finir le document Word ? ouvrir
    wdApp.Visible = True
    Set wdDoc = wdApp.Documents.Open(Nom_doc)
 
    K = 0 'permet de compter le nombre de graphiques pass?s en revue
        For I = 1 To Sheets.Count 'passe en revue les onglets du fichier
        Sheets(I).Activate
 
        'Boucle pour selectionner un ? un les graphiques de la feuille active et faire les modifications
                For J = 1 To ActiveSheet.ChartObjects.Count
                    Sheets(I).ChartObjects(J).CopyPicture 'copie le graphique s?lectionn? en format image
                    K = K + 1 'impl?mente le compteur de graphiques
                    wdDoc.Activate 'active le fichier Word
                    Deb = wdDoc.Bookmarks("Graph" & K).Start 'rep?re le d?but du signet concern?
                    Fin = wdDoc.Bookmarks("Graph" & K).End 'rep?re la fin du signet concern?
                    wdDoc.Bookmarks("Graph" & K).Range.Select 'permet d'atteindre le signet correspondant ? l'emplacement du graphique
                    wdDoc.Bookmarks("Graph" & K).delete 'supprime les donn?es du signet (et supprime le signet en m?me temps)
                    wdApp.Selection.PasteAndFormat (wdChartPicture) 'collage du graphique en format image
                    wdApp.Selection.InsertParagraphAfter 'ins?re un saut de ligne
                    wdApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter 'centre le graphique
                    wdDoc.Range(Deb, Fin).Bookmarks.Add ("Graph" & K) 'on recr?e le signet avec les infos d?but et fin de l'emplacement
                Next J
        Next I
    wdApp.ScreenUpdating = True
    wdApp.Selection.Goto What:=wdGoToPage, Count:=1 'aller ? la 1?re page du doc Word
    wdApp.ActiveDocument.Save 'enregistrement du docx Word
 
    Application.CutCopyMode = False 'vide le presse-papier
    Application.ScreenUpdating = True
    MsgBox "EXPORT GRAPHIQUES WORD OK"
 
End Sub