BONJOUR les amis.
pour ceux qui désire faire des courrier avec des balise ( signet) préalablement mis dans un document word), voila la réponse
il y a deux méthode :
Public Sub RemplirSignet(S As String, T As String, WordDoc As Word.Document)
Dim Place As Long
Place = WordDoc.Bookmarks(S).Range.Start
WordDoc.Bookmarks(S).Range.Text = T
WordDoc.Bookmarks.Add Name:=S, _
Range:=WordDoc.Range(Place, Place + Len(T))
End Sub
Sub test()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Set WordApp = CreateObject("word.application")
Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\" & "dc.docx") 'ouvre document Word
WordApp.Visible = True
RemplirSignet "NOM", Sheets("Feuil2").Range("F3").Text, WordDoc
RemplirSignet "ADRESSE", Sheets("Feuil2").Range("G3").Text, WordDoc
RemplirSignet "CP", Sheets("Feuil2").Range("H3").Text, WordDoc
RemplirSignet "NOM2", Sheets("Feuil2").Range("F3").Text, WordDoc
'RemplirSignet "TYPEFORMALITE1", Sheets("Feuil2").Range("P3").Text, WordDoc
RemplirSignet "typeformalite", Sheets("Feuil2").Range("Q3").Text, WordDoc
'RemplirSignet "DATE1", Sheets("Feuil2").Range("K3").Text, WordDoc
RemplirSignet "DATE2", Sheets("Feuil2").Range("O3").Text, WordDoc
RemplirSignet "LEAD", Sheets("Feuil2").Range("D3").Text, WordDoc
RemplirSignet "NCFENET", Sheets("Feuil2").Range("E3").Text, WordDoc
'RemplirSignet "NCFENET2", Sheets("Feuil2").Range("E3").Text, WordDoc
End Sub
la seconde:
Sub Remplacer(signet As Bookmark, LeMot As String)
Dim deb As Integer, fin As Integer, Nom As String
deb = signet.Start 'début du signet
fin = signet.End 'fin du signet
Nom = signet.Name 'nom du signet
signet.Range.Text = LeMot 'remplace le texte contenu
With ActiveDocument.Range(Start:=deb, End:=fin) 'emplacement du signet
.Bookmarks.Add Name:=Nom 'ajoute le signet
End With
End Sub
Sub test()
Dim WordApp As Word.Application
Dim WordDoc As Word.Document
Dim signet As Bookmark, LeMot As String
Set WordApp = CreateObject("word.application")
Set WordDoc = WordApp.Documents.Open(ThisWorkbook.Path & "\" & "TESTE.docx") 'ouvre document Word
WordApp.Visible = True
Set signet = ActiveDocument.Bookmarks("NOM")
LeMot = Sheets("Feuil2").Range("F3") 'Chaîne de caractère destiné à remplacer le contenu du signet
Remplacer signet, LeMot
End Sub
un grand merci a MACHIN pour son aide.
Ps: attention il n'y a pas la macro qui prévient si le document word est lancé et qui va faire galérer votre pc.