XL 2013 (RESOLU) Automatisation de la Saisie de Données Excel vers un Document Word Modèle

chaelie2015

XLDnaute Accro
Bonsoir Forum
J'ai un fichier Word que j'utilise comme modèle de document, appelé, "Charlie doc type". Dans ce document, il y a un texte qui comprend plusieurs contrôles de contenu de texte enrichi que j'ai nommés comme suit : "Champs_Nom" (il y en a trois), "Champs_Prénom" (il y en a trois également), et "Champs_Date" (il y en a trois aussi).

Par ailleurs, j'ai un fichier Excel (Feuille1) qui contient un tableau avec deux colonnes (A et B) et quatre lignes. La première ligne contient les en-têtes du tableau. Plus précisément,

je souhaite que les valeurs saisies dans les cellules du tableau A1:B4 de ce fichier Excel soient automatiquement renseignées dans les contrôles de contenu correspondants du document Word. Pour être plus précis, la cellule B2 du tableau Excel contient le nom, la cellule B3 contient le prénom, et la cellule B4 contient une date que je souhaite transmettre au document Word.
Merci
 

Pièces jointes

  • Charlie doc type.docx
    18.8 KB · Affichages: 14
  • Charlie Excel vers Word.xlsx
    11.6 KB · Affichages: 15
Dernière édition:
Solution
En fait pour traiter votre pied de page ce n'est pas très compliqué :
VB:
Sub Word()
Dim Wapp As Object, Wdoc As Object, c As Object, n&
On Error Resume Next
Set Wapp = GetObject(, "Word.Application")
If Wapp Is Nothing Then Set Wapp = CreateObject("Word.Application")
Wapp.Visible = True
Set Wdoc = Wapp.Documents.Open(ThisWorkbook.Path & "\Charlie doc type.docx")
For Each c In Wdoc.ContentControls
    c.Range.Text = Format(Application.VLookup(c.Title, Range("A2:B4"), 2, 0), "dd/mm/yyyy")
Next
For Each c In Wdoc.Sections(1).Footers(1).Range.ContentControls
    c.Range.Text = Format(Application.VLookup(c.Title, Range("A2:B4"), 2, 0), "dd/mm/yyyy")
Next
Wdoc.Sections(1).Footers(1).Range.Text = Replace(Wdoc.Sections(1).Footers(1).Range.Text...

Discussions similaires

Statistiques des forums

Discussions
312 817
Messages
2 092 368
Membres
105 380
dernier inscrit
ASea DSea