Copier valeur dans word en VBA

Bonjour,

Ça fait un bout de temps que je ne suis pas revenu, je ne sais même pas si mes paramètres on été conservés (nombres de msg et tout!), mais voilà, j'ai un petit projet, que je vais vous soumettre :

Ce que je veux faire :

Réaliser des arrêtés types, pour les collègues, en automatisant la saisi d'un certain nombre de champs

Comment :

J'ai l'idée de faire remplir via des listes ou champs libre, toutes les infos à modifier dans un arrêté type, sous Word. Puis qu'un petit code sympa, via un bouton, me modifie tous les champs à modifier.

J'avais pensé au Publipostage, mais ça fait un peu trop de clic pour les collègues.

Un petit exemple (qui ne sert pas à grand-chose finalement est joint), où j'explique aussi les choses.

Au départ, j'avais, depuis un Word type, fait des copier/coller "avec liaison" de tous les champs renseignés dans le fichier Excel, puis un bouton en bas du fichier Excel (un simple lien hypertexte) ouvrait le fichier et les champs se modifiaient.

Problème, le doc était en lecture seul, il fallait l'enregistrer, en prenant garde de casser les liaisons, sinon l'utilisation ultérieure du fichier Excel modifie les anciens Word créés! Bref, pas super.

Voilà, je ne sais pas si en VBA il est possible de :

  • copier/coller là où on veut précisément dans un texte Word des champs,
  • de (pourquoi pas) carrément générer tout l'arrêté en Word, sans passer par l'insertion d'éléments dans un Word préfabriqué.

Merci!

Bonjour,

A mes yeux, et ça n'engage que moi , je conserverais le publipostage avec à la fin la fusion vers un nouveau doc

With ActiveDocument.MailMerge
        .Destination = wdSendToNewDocument
        .SuppressBlankLines = True
        With .DataSource
            .FirstRecord = wdDefaultFirstRecord
            .LastRecord = wdDefaultLastRecord
        End With
        .Execute Pause:=False
    End With

Le doc générer ne possède plus de lien avec excel donc plus de risque d'y apporter des modif en créant un nouvel arreté.

Bonsoir,

Un essai avec des signets.

A mettre dans le module de la feuille:

Option Explicit

Sub test()
Dim LePath$
Dim wApp As Word.Application
Dim wDoc As Word.Document
Application.ScreenUpdating = False
  LePath = "C:\Users\Xou\Desktop\Liaison\test.docx"'Lien vers le fichier modèle
  Set wApp = New Word.Application
  Set wDoc = wApp.Documents.Open(LePath)
    wDoc.Bookmarks("Ville").Range.Text = Me.Range("C7")
    wDoc.Bookmarks("Travaux").Range.Text = Me.Range("C10")
    '...
    wDoc.SaveAs2 "C:\Users\Xou\Desktop\Liaison\test2.docx"'On sauvegarde sous un autre nom (écrase tout fichier du même nom)
    wDoc.Parent.Quit
  Set wDoc = Nothing: Set wApp = Nothing
End Sub

Pour créer des signets sous word: onglet insertion -> signets.

Requiert d'activer la référence Microsoft Word XX.X Object library.

Cdt,

Darzou

Rechercher des sujets similaires à "copier valeur word vba"