Tableau vers document word avec signets
Bonjour, débutante en VBA je me suis appuyée sur différents forums pour essayer de créer une macro qui exporte en image différents tableaux dans un fichier word où j'ai créé des signets. Lorsque je fais tourner la macro, je sélectionne le fichier word, il s'ouvre, mais les images ne sont pas apparues aux signets.
Pouvez vous m'aider à comprendre d'où vient le problème ? Merci beaucoup ! :D
'EDITION DU RAPPORT WORD
Public Sub Edition_rapport()
'Ignore les erreurs rencontrés et poursuit la procédure
'On Error Resume Next
'Déclaration des variables
'Dim wordApp As Word.Application
'Dim wordDoc As Word.Document
Dim wordApp As Object
Dim wordDoc As Object
Dim largeur As Integer
Dim Chemin As String
Dim Text As String
Dim k As Integer
Dim i As Variant
Dim entree As String
Dim Graphique As String
Dim finput As FileDialog
Dim TdeBase As String
Dim Commentaire As String
Dim ReglementairePgm As String
Dim TableauNuméro1(1, 3) As Integer
Dim TableauNuméro2(1, 3) As Integer
Dim intT As Integer
rep = MsgBox("Vous êtes sur le point de lancer la création du rapport de votre étude." & vbCr & _
"Après ce message, si vous confirmez votre souhait de créer ce rapport, vous devez aller sélectionner la trame de rapport correspondante à la version de cet utilitaire que vous utilisez à l'aide de l'explorateur windows qui s'ouvrira." & vbCr & _
"Si vous ne connaissez pas le numéro de version de l'utilitaire que vous êtes en train d'utiliser, reportez-vous sur la feuille 'Accueil' qui l'indique ou vers votre responsable." & vbCr & _
"" & vbCr & _
"Souhaitez-vous créer le rapport de votre étude?", vbYesNo + vbQuestion, "Edition du pré-rapport de votre étude")
If rep = vbYes Then
'Ouverture de l'explorateur windows
Set finput = Application.FileDialog(msoFileDialogFilePicker)
finput.Show
With finput
Chemin = .SelectedItems(1)
End With
'Création du fichier word
Set wordApp = CreateObject("Word.Application")
wordApp.Visible = True
'ouverture du fichier word sélectionné
Set wordDoc = wordApp.Documents.Open(Chemin, ReadOnly:=True)
'--------------------------------------------------------------------------------------
' PROCEDURE DE COPIE DE GRAPHIQUES ET TABLEAUX DE RENDUS
'La procédure ViderPressePapier vide au fur et à mesure de la procédure le données copiée
' en mémoire tampon afin de permettre la copie totale des informations
'--------------------------------------------------------------------------------------
'ETAT DES LIEUX CLOS COUVERT
Call ViderPressePapier 'Vide le presse papier (macro dans le module 2)
On Error GoTo signet0
wordApp.Selection.Goto what:=wdGoToBookmark, Name:="EDL_Facade" 'dans l'instance word, place le curseur au signet demandé
Worksheets("État des lieux_Clos couvert").Range("RapportTableauFacades").Copy 'dans l'instance excel, copie la plage nommée demandée
wordApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
wordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False
'Données Générales Synthèse
signet0:
Call ViderPressePapier
On Error GoTo -1
On Error GoTo signet1
wordApp.Selection.Goto what:=wdGoToBookmark, Name:="SignetDONNEES_GENERALES2" 'dans l'instance word, place le curseur au signet demandé
Worksheets("DONNEESGENERALES").Range("DONNEESGENERALES").Copy 'dans l'instance excel, copie la plage nommée demandée
wordApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
wordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False
'DESCRIPTION CLOS ET COUVERT
signet1:
Call ViderPressePapier
On Error GoTo -1
On Error GoTo signet1_1
wordApp.Selection.Goto what:=wdGoToBookmark, Name:="EDL_Facade" 'dans l'instance word, place le curseur au signet demandé
Worksheets("État des lieux_Clos couvert").Range("RapportTableauFacades").Copy 'dans l'instance excel, copie la plage nommée demandée
wordApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
wordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False
'[...] répétition du même code jusqu'au signet 27
'Analyse Conso & Factures
signet27:
Call ViderPressePapier
On Error GoTo -1
On Error GoTo signet28
wordApp.Selection.Goto what:=wdGoToBookmark, Name:="SignetANALYSE_CONSO"
Worksheets("CONSOMMATIONS2").Range("ANALYSE_CONSO").Copy
wordApp.Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
wordApp.Selection.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, Placement:=wdInLine, DisplayAsIcon:=False
signet28:
'Retour sur la feuille Menu
Worksheets("ACCUEIL").Select
'Mettre la table à jour
wordApp.WordBasic.UpdateTableOfContents
End SubBonjour,
Flemme de lire le code proposé, alors voici une démo simplette :
* 2 boutons :
* le bouton "créer" => pour créer un doc word contenant un signet
* le bouton "modifier" => pour modifier le doc word précédemment créé en y ajoutant au signet un tableau correspondant à la plage A1:E6 de la Feuil1
Le code pour insérer le tableau est très simple :
Sub Demo_Modif_Word()
Dim Rep As String, ndf As String
Rep = ThisWorkbook.Path & "\Word\"
ndf = Rep & "Démo_Tableau.docx"
Verif_Rep Rep
If Exist_Fichier(ndf) Then
Open_Word ndf, False
'' copie le tableau vers le signet
Copie_tblo_signet "Signet_pour_tableau", Sheets("Feuil1").Range("A1:E6")
WordDoc.Application.ActiveDocument.SaveAs (ndf)
Close_Word
MsgBox "Document Word modifié!"
End If
End SubSouhaitant que ça puisse servir
Pierre