Bonjour,
Je cherche à programmer l'importation dans un document WORD (par macro VBA) un graphique se trouvant dans un fichier Excel.
Quelqu'un sait-il comment faire ?
Merci.
Bonjour,
Je cherche à programmer l'importation dans un document WORD (par macro VBA) un graphique se trouvant dans un fichier Excel.
Quelqu'un sait-il comment faire ?
Merci.
Bonjour,
Un code à adapter :
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
47
48
49
50 Option Explicit Sub CopieGrapheExcelDepuisWord() Dim I As Integer Dim MonChemin As String Dim DocEncours As Document Dim AppExcel As Object, FicExcel As Object On Error GoTo Fin Set DocEncours = ActiveDocument MonChemin = "C:\Users\...\Xxxxx.xlsm" Set AppExcel = CreateObject("Excel.Application") With AppExcel .Visible = True Set FicExcel = .Workbooks.Open(MonChemin) FicExcel.Sheets("Données").ChartObjects("Graphique 2").Copy With DocEncours 'Cherche le signet nommé Signet1 Selection.GoTo What:=-1, Name:="Signet1" DoEvents 'Colle le graphe dans le signet Selection.PasteSpecial , Link:=False DoEvents End With FicExcel.Close savechanges:=False End With MsgBox "Import graphe terminé !", vbInformation GoTo Fin Fin: Set FicExcel = Nothing AppExcel.Quit Set AppExcel = Nothing Set DocEncours = Nothing End Sub
ok merci, ça marche ,
mais la figure inclut des titres et légendes dont la taille de police est augmentée et n'apparaissent plus que partiellement.
Peut-on ajouter une commande pour conserver intégralement le format et règler la taille de la figure ? Merci.
Michel
Modifiez cette partie de code :
Le fichier Excel étant fermé sans sauvegarde, l'image générée sera perdue.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Set AppExcel = CreateObject("Excel.Application") With AppExcel .Visible = True Set FicExcel = .Workbooks.Open(MonChemin) With FicExcel.Sheets("Données") .ChartObjects("Graphique 2").Copy .PasteSpecial Format:="Image (JPEG)", Link:=False, DisplayAsIcon:=False AppExcel.Selection.Copy End With
OK ça marche très bien sans attributs de PasteSpecial :
L'image est ainsi très bien reproduite, bien nette et précise.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 ... Set FicExcel = .Workbooks.Open(MonChemin) With FicExcel.Sheets("Données") .ChartObjects(3).Copy .PasteSpecial AppExcel.Selection.Copy End With ...
Merci.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager