Je me permet de mettre ma contribution dans ce forum car j'ai passé pas mal de temps sur ce probleme!
Objectif: Copier une cellule XL pour l'insérer dans un document Word
Ce qu'on trouve beaucoup sur le site:
Copie partielle et simplifiée d'une macro proposée par Ouskel'n'or
L'inconvénient de cette procédure est qu'elle va intégrer un tableau XL à Word (bien que ca ne se voit pas) avec la conséquence d'alourdir grandement le poids du fichier.
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 Sub CopierAlEndroitVouluUnePlageDeCellulesExcelDansWord() ' Création des objets Word Dim WdApp As Word.Application Dim WdDoc As Word.Document 'ouvre la session Word Set WdApp = CreateObject("word.application") 'ouvre le doc Set WdDoc = WdApp.Documents.Open("D:\Doc\Worddoc.doc") 'masque l'application (Pour les tests, mettre à True) WdApp.Visible = False 'Sélection de la cellule à copier par exemple la dernière cellule de la colonne A du Workbooks Xl Cells(1,1).end(xldown).copy 'Place l'image sur le signet "Signet" With WdApp .Selection.Goto What:=wdGoToBookmark, Name:="Signet" 'Coller la cellule .Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, _ Placement:=wdInLine, DisplayAsIcon:=False End With 'WdApp.Visible = True 'Pour voir (Ne pas fermer le fichier depuis Word) 'Enregistre et ferme le doc word WdDoc.Close True 'Laisse au system le temps d'enregistrer le fichier DoEvents 'ferme la session WdApp.Quit Set WdApp = Nothing Set WdDoc = Nothing end sub
Je vous propose le code suivant, qui est accessible par recherche sur le site mais il faut vraiment bien fouiner.
Il permet de ne copier que le texte d'une cellule et non la cellule elle meme.
En espérant aider les ames errantes.
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 Sub CopierAlEndroitVouluUnePlageDeCellulesExcelDansWord() ' Création des objets Word Dim WdApp As Word.Application Dim WdDoc As Word.Document 'ouvre la session Word Set WdApp = CreateObject("word.application") 'ouvre le doc Set WdDoc = WdApp.Documents.Open("D:\Doc\Worddoc.doc") 'masque l'application (Pour les tests, mettre à True) WdApp.Visible = False 'Sélection DU TEXTE la cellule à copier en passant par une variable string dim Letexte as string Letexte = Cells(1,1).end(xldown).text 'Place l'image sur le signet "Signet" With WdApp .Selection.Goto What:=wdGoToBookmark, Name:="Signet" 'Coller LE TEXTE de la cellule .Selection.typetext text:= Letexte 'Ou alors on pourait se passer de la variable avec la ligne suivante: ' .Selection.typetext text:= workbooks(1).Sheets(1).cells(1,1).end(Xldown).text End With 'Pour voir (Ne pas fermer le fichier depuis Word) 'WdApp.Visible = True 'Enregistre et ferme le doc word WdDoc.Close True 'Laisse au system le temps d'enregistrer le fichier DoEvents 'ferme la session WdApp.Quit Set WdApp = Nothing Set WdDoc = Nothing end sub
Coconut2
Partager