Export info d'Excel a un fichier modele Word
Bonjour a tous,
Jái une base de données sur plusieurs lignes de ma spreadsheet excel avec plusieurs informations presentes dans plusieurs colonnes.
J'ai également un template word avec des tableaux et des colonnes bien définies pour contenir chacune des informations présentes dans les différentes colonnes d'excel.
Aussi, je voudrais que ce processus se repéte sur d'autres pages de mon template avec les informations présentes dans les lignes suivantes.
Comment faire svp? Je suis vraiment tres débutante en VBA et il s'agit d'une importante economie de temps pour moi je vous serai super reconnaissante de votre aide
Merci d'avance a tous
rita
Bonjour,
Ci-joint un exemple fonctionnel basé sur la procédure principale suivante pour insérer le contenu de certaines cellules dans 2 tableaux différents du modèle word :
Sub Export_word(lig As Integer)
Dim NDF As String, NDF2 As String, Rep As String, S As String
Dim nb As Byte, i As Byte
Dim WordApp As Object, WordDoc As Object
NDF = ActiveWorkbook.Path & "\Fiche.doc"
Rep = ActiveWorkbook.Path & "\Fiches\"
If Not ExisteRep(Rep) Then MkDir Rep
NDF2 = Rep & "Fiche" & ActiveSheet.Cells(lig, "A") & "_" & Format(Now(), "yyyymmdd_hhmm")
On Error Resume Next
Set WordApp = CreateObject("Word.Application")
Set WordDoc = WordApp.Documents.Open(NDF, ReadOnly:=False)
With WordApp
.Visible = False
With WordDoc.Tables(1)
.cell(1, 2).Range.InsertAfter ActiveSheet.Cells(lig, "A")
.cell(1, 4).Range.InsertAfter ActiveSheet.Cells(lig, "B")
.cell(2, 2).Range.InsertAfter ActiveSheet.Cells(lig, "C")
.cell(2, 2).Range.InsertAfter vbCrLf & ActiveSheet.Cells(lig, "D")
.cell(3, 2).Range.InsertAfter ActiveSheet.Cells(lig, "E")
End With
With WordDoc.Tables(2)
.cell(2, 3).Range.InsertAfter ActiveSheet.Cells(lig, "F")
.cell(3, 3).Range.InsertAfter ActiveSheet.Cells(lig, "G")
.cell(4, 3).Range.InsertAfter ActiveSheet.Cells(lig, "H")
End With
End With
WordDoc.SaveAs NDF2
WordApp.Quit
Set WordDoc = Nothing
Set WordApp = Nothing
End SubLa référence des cases des tableaux word se fait par :
WordDoc.Tables(n° du tableau).(ligne,colonne).Range ...
(en faisant attention aux cases fusionnées de ces tableaux)
Pierre