Bonjour à toutes et tous,

C'est mon tout premier programme en VBA et tout premier post sur ce forum ! J'ai fait un peu de basic quand j'étais jeune et là, après avoir parcouru le site et le forum, je n'avance plus... Merci pour votre aide !

J'ai tapé ce bout de code (il est juste après mes questions ; merci pour les posts et tutos qui m'ont bien aidé) ; il ne bugue pas ! Néanmoins je souhaite pouvoir (d'où le titre) ajuster automatiquement la taille des tableaux excel quand je les importe sur le signet du document word existant et ouvert et garder leur mise-en-page (couleur, bordure, arrière-plan) et là ça ne marche plus du tout...

J'ai essayé :
-
Code : Sélectionner tout - Visualiser dans une fenêtre à part
.Selection.PasteAndFormat (wdPasteDefault)
; ça copie en format tableau et ajuste à la largeur de la page word mais dès que le tableau est trop haut (page A4), je perds la mise en page, les couleurs d'arrière-plan des cellules et les petites cases à cocher disparaissent.
- du coup j'utilise
Code : Sélectionner tout - Visualiser dans une fenêtre à part
.Selection.PasteSpecial , Link:=False, DataType:=wdPasteEnhancedMetafile, DisplayAsIcon:=False
; ça convertit en image le tableau mais je perds les bordures d'encadrement qui donnent un peu de rendu visuel aux tableaux...

Le pire étant les 'cases à cocher' qui, avec wdPasteDefaut de PasteAndFormat deviennent affreuses, illisibles...

Qu'est-ce que je peux faire ? Des suggestions de tutos ?

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
'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
'Référence Microsoft Word 14.0 Object Library chargée dans menu déroulant Outils
Dim aWord As Word.Application
Set aWord = CreateObject("Word.Application")
 
'Ouverture du rapport-type, rendu visible
aWord.Documents.Open ("C:\Users\Utilisateur\Documents\Rapport_Type.docx")
aWord.Visible = True
 
'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"
 
'Colle Tableau 1 à signet1
aWord.Selection.PasteSpecial , Link:=False, DataType:=wdPasteEnhancedMetafile, DisplayAsIcon:=False
 
'Variantes Options de collage :
'- aWord.Selection.PasteAndFormat (wdPasteDefault) : copie en format tableau / ajuste à la largeur de la page word
'- aWord.Selection.Paste
'- aWord.Documents.Tables(1).AutoFitBehavior wdAutoFitWindow
 
 
'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, DisplayAsIcon:=False
 
End Sub
Merci encore