Bonjour,
Je crée un code VBA permettant de copier un morceau de tableau sur Excel et de le coller sur un document Word, sur un signet bien précis.
Mon code fonctionne bien malgré qu'il soit surement un peu maladroit.
Mais lorsque je le lance, il ouvre un fichier Excel (autre que celui de ma macro), le referme immédiatement puis apparaît dans l'interface VBA comme une copie de mon fichier principal au nom de : "Classeur 1" (cf pièce-jointe).
En isolant mon code, je remarque que ça doit provenir d'ici :
Le code m'ouvre autant de nouveaux classeurs que de lignes de code comme au-dessus...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ActiveWorkbook.Worksheets("Compte de résultat").Range("CptTabl").Copy WordDoc.ActiveWindow.Document.Bookmarks("CptTabl").Range.PasteSpecial DataType:=wdPasteBitmap
Je n'arrive pas à comprendre pourquoi il m'ouvre plusieurs fichiers... Pouvez-vous m'aider ??
Si jamais voici le code en entier :
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
51
52
53
54
55
56
57 Sub Graph() 'nécessite d'activer la référence Microsoft Word xx.x Object Library Dim WordApp As Object Dim WordDoc As Object 'Dim MF As Word.Field Dim DocName As String Dim repertoire As String Dim MFName As String Dim MFIndex As String Dim i As Integer 'Boite de dialogue pour connaitre l'année choisie annee = InputBox("Pour quelle année voulez-vous saisir les chiffres ?", "Année", Year(Now) - 1) 'La variable reçoit la valeur entrée dans l'InputBox Set WordApp = CreateObject("word.application") 'ouvre session word WordApp.Visible = True 'word masqué pendant l'operation Set WordDoc = WordApp.Documents.Open("O:\Test.docm") 'ouvre document Word WordDoc.Bookmarks("annee").Range.Text = annee Workbooks("Rapport d'activité 2021.xlsm").Worksheets("Accueil").Activate 'Copier coller un graphique ActiveWorkbook.Worksheets("Accueil").ChartObjects("EvolCA").Copy WordDoc.ActiveWindow.Document.Bookmarks("EvolCA").Range.PasteSpecial (wdPasteBitmap) Application.CutCopyMode = False ActiveWorkbook.Worksheets("Compte de résultat").Activate 'Copier coller les tableaux 'Tableau Compte de résultat : CptTabl et DetTabl ActiveWorkbook.Worksheets("Compte de résultat").Range("CptTabl").Copy WordDoc.ActiveWindow.Document.Bookmarks("CptTabl").Range.PasteSpecial DataType:=wdPasteBitmap Application.CutCopyMode = False WordApp.Visible = True 'affiche le document Word repertoire = ThisWorkbook.Path repertoire = repertoire & "\" DocName = "Rapport activité " & annee DocName = DocName & ".docx" WordDoc.SaveAs Filename:=repertoire & DocName 'ferme le document word en sauvegardant les données 'WordApp.Quit 'ferme la session Word End Sub
Merci d'avance pour votre aide !
Partager