Un exemple :
Il sera peut-être nécessaire de reconstituer les signets dans le document Word, si le document doit être réutilisé après une première mise à jour.
Sub EnvoyerDonneesExcelVersWord()
Dim oWdApp As Word.Application, oWdDoc As Word.Document ' En early binding (Si Word est référencé)
' Dim oWdApp As Object, oWdDoc As Object ' En late binding
Dim Repertoire As String, NomDuDocument As String
Dim AireMateriel As Range
Dim I As Integer
On Error GoTo FinWord
Set AireMateriel = Range("Matériel")
AireMateriel.Copy
Set oWdApp = CreateObject("Word.Application")
oWdApp.Visible = True
Repertoire = ActiveWorkbook.Path & "\"
NomDuDocument = Repertoire & "Essai.docx"
'Set oWdDoc = oWdApp.Documents.Add("LeNomDeVotreModele.Dotx") ' Si vous devez générer un nouveau document à chaque fois
Set oWdDoc = oWdApp.Documents.Open(NomDuDocument) ' Dans le cas où vous utilisez le même document à chaque fois.
With oWdDoc
If .Bookmarks.Count = 0 Then
MsgBox "Absence de signet !", vbCritical
.Close savechanges:=False
GoTo FinWord
End If
If .Bookmarks.Exists("Matériel") = False Then
MsgBox "Absence de signet Matériel !", vbCritical
.Close savechanges:=False
GoTo FinWord
End If
.Bookmarks("Matériel").Select
oWdApp.Selection.PasteSpecial Link:=False, DataType:=0, Placement:=0, DisplayAsIcon:=False
'.SaveAs2 "Chemin et NomDeVotreDocument.docx" ' Si créé à partir d'un modèle
.Close savechanges:=True
End With
Application.CutCopyMode = False
MsgBox "Fin de mise à jour !", vbInformation
GoTo FinWord
FinWord:
oWdApp.Quit
Set AireMateriel = Nothing
Set oWdApp = Nothing
Set oWdDoc = Nothing
End Sub