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 58 59 60 61 62 63 64
| 'VBA 7.0
'Office 2010
'Excel et Word v.14
'Extraction de tableaux Excel (feuilles et formats différents) vers rapport Word (rapport-type : signets prémarqués) existant
Sub ExtTabEW()
'Lancement application Word et Ouverture du document type
'Référence Microsoft Word 14.0 Object Library chargée dans menu déroulant Outils
Dim aWord As Word.Application
Dim dWord As Word.Document
Set aWord = CreateObject("Word.Application")
aWord.Visible = True
Set dWord = aWord.Documents.Open("C:\Users\Utilisateur\Documents\Rapport_Type.docx")
'Copie Tableau 1 depuis Excel\Feuil1
Sheets("Feuil1").Select
Range("B5:C33").Select
Selection.Copy
'Cherche signet1 dans le rapport-type
aWord.Selection.Goto What:=wdGoToBookmark, Name:="signet1"
DoEvents
'Colle Tableau 1 à signet1
aWord.Selection.PasteSpecial , Link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False
'autres options de coller
'aWord.Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
'aWord.Selection.PasteSpecial , Link:=False, DataType:=wdPasteEnhancedMetafile, DisplayAsIcon:=False
'"Placement:=wdInLine" permet de faire ça.
'"Link:=True" lie les données au fichier Excel (=false supprime le lien)
'"LockAspectRatio = msoTrue" conserve le rapport Hauteur/largeur
aWord.Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
DoEvents
With dWord.InlineShapes(1)
.LockAspectRatio = msoTrue
.Height = 750 'redimensionne hauteur image
'.Width = 510 'redimensionne largeur image
End With
'Copie Tableau 2 depuis Excel\Feuil2
Sheets("Feuil2").Select
Range("C2:K19").Select
Selection.Copy
'Cherche signet2 dans le rapport-type
aWord.Selection.Goto What:=wdGoToBookmark, Name:="signet2"
'Colle Tableau 2 à signet2
'Option wdPasteEnhancedMetafile transforme le tableau en image pour redimensionnent manuel sous Word
aWord.Selection.PasteSpecial , Link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False
With dWord.InlineShapes(1)
.LockAspectRatio = msoFalse
.Height = 750 'redimensionne hauteur image
.Width = 510 'redimensionne largeur image
End With
End Sub |
Partager