Bonjour,
Je cherche à copier des tableaux excel vers word par macro VBA.
Pour cela j'ai déjà un bout de code, mais qui ne conviens pas totalement à ce que je souhaite.
En faite le code ci dessous me permet de sélectionner le word dans lequel je souhaite coller mes tableaux excel (collage avec liaison) et me les insères au début du document. Mais j'aimerais que ces tableau se placent soit à la fin du document, soit, au mieux, après un titre présent dans mon document word (titre : TABLEAU DES SURFACES)
Le code :
Public AppliWord As New Word.Application
Sub creation_du_word()
Dim Mon_Clair As Document
On Error Resume Next
ChoixWord = Application.GetOpenFilename(",*")
If ChoixWord = "" Then Exit Sub
AppliWord.Documents.Open (ChoixWord)
Set Mon_Clair = ActiveDocument
AppliWord.Visible = True
For Each sh In ActiveWorkbook.Worksheets
If Not sh.Name = "Source" Then
sh.Select
Set R = sh.Cells.Find(what:="*", After:=sh.[iv65536], SearchOrder:=xlByRows, searchdirection:=xlPrevious)
Derniere_ligne = R.Row
Range(Cells(1, 1), Cells(Derniere_ligne, 7)).Copy
AppliWord.Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
End If
Next sh
AppliWord.Documents.Save
AppliWord.Documents.Close
End Sub
Si quelqu'un as une idée ou une piste, merci d'avance.
Cordialement,
Philippe
Je cherche à copier des tableaux excel vers word par macro VBA.
Pour cela j'ai déjà un bout de code, mais qui ne conviens pas totalement à ce que je souhaite.
En faite le code ci dessous me permet de sélectionner le word dans lequel je souhaite coller mes tableaux excel (collage avec liaison) et me les insères au début du document. Mais j'aimerais que ces tableau se placent soit à la fin du document, soit, au mieux, après un titre présent dans mon document word (titre : TABLEAU DES SURFACES)
Le code :
Public AppliWord As New Word.Application
Sub creation_du_word()
Dim Mon_Clair As Document
On Error Resume Next
ChoixWord = Application.GetOpenFilename(",*")
If ChoixWord = "" Then Exit Sub
AppliWord.Documents.Open (ChoixWord)
Set Mon_Clair = ActiveDocument
AppliWord.Visible = True
For Each sh In ActiveWorkbook.Worksheets
If Not sh.Name = "Source" Then
sh.Select
Set R = sh.Cells.Find(what:="*", After:=sh.[iv65536], SearchOrder:=xlByRows, searchdirection:=xlPrevious)
Derniere_ligne = R.Row
Range(Cells(1, 1), Cells(Derniere_ligne, 7)).Copy
AppliWord.Selection.PasteSpecial Link:=True, DataType:=wdPasteOLEObject, Placement:=wdInLine, DisplayAsIcon:=False
End If
Next sh
AppliWord.Documents.Save
AppliWord.Documents.Close
End Sub
Si quelqu'un as une idée ou une piste, merci d'avance.
Cordialement,
Philippe