Programme excel-VBA pour changer mots (stockés ds excel) dans word signets?
Bonjour,
Cela fait plusieurs semaines que j'essaie de créer un programme VBA-Excel pour changer 6 mots dans un document word en utilisant des signets. Ces 6 mots qui varient en fonction du temps sont stockés dans le ficher excel. Je cherche donc à me re-servir du corps de texte du document word à chaque fois, mais en changeant uniquement 6 mots (qui sont toujours à la même place dans le texte : marque de véhicule, plaque d'immatriculation, etc) qui sont stockés dans excel...
En créant un programme directement dans Word, j'arrive à créer les signets, écrire l'info que je veux dans ces signets, puis à recréer des signets pour ces mêmes mots pour la prochaine utilisation, mais je dois remplir moi-même le contenu de ces signets dans le programme. En fait, je voudrais créer un programme qui tourne dans Excel et qui copie des informations dans ces signets à partir d'info stockés dans excel. Jusqe-là, j'arrive à créer le signets, copier dans word l'info stockée dans excel, mais je n'arrive pas à recréer un signet derrière pour ces 6 mots...
** Programme Word-VBA :
Sub Try1()
Dim RNG1 As Range, RNG2 As Range, RNG3 As Range
Dim RNG4 As Range, RNG5 As Range, RNG6 As Range
'Identify current Bookmark range and insert text
Set RNG1 = ActiveDocument.Bookmarks("BM1").Range
RNG1.Text = "DS"
'Re-insert the bookmark
ActiveDocument.Bookmarks.Add Name:="BM1", Range:=RNG1
Set RNG2 = ActiveDocument.Bookmarks("BM2").Range
RNG2.Text = "DS7"
ActiveDocument.Bookmarks.Add Name:="BM2", Range:=RNG2
Set RNG3 = ActiveDocument.Bookmarks("BM3").Range
RNG3.Text = "AA-789-GG"
ActiveDocument.Bookmarks.Add Name:="BM3", Range:=RNG3
Set RNG4 = ActiveDocument.Bookmarks("BM4").Range
RNG4.Text = "VR000000099999999"
ActiveDocument.Bookmarks.Add Name:="BM4", Range:=RNG4
Set RNG5 = ActiveDocument.Bookmarks("BM5").Range
RNG5.Text = "31/12/2020"
ActiveDocument.Bookmarks.Add Name:="BM5", Range:=RNG5
Set RNG6 = ActiveDocument.Bookmarks("BM6").Range
RNG6.Text = "01/12/2020"
ActiveDocument.Bookmarks.Add Name:="BM6", Range:=RNG6
End Sub** Programme Excel-VBA :
Sub Try3()
Dim wdApp As Word.Application
Dim wdDoc
Set wdApp = CreateObject("word.application")
Set wdDoc = wdApp.Documents.Open("C:\Users\ProutProutProut\desktop\Prout\Prout\Prout.docx")
With wdApp
.Visible = True
.Activate
End With
Range("A1").Copy
With wdApp
.Selection.GoTo what:=wdGoToBookmark, Name:="BM1"
.Selection.PasteSpecial DataType:=wdPasteText
End With
Application.CutCopyMode = True
End SubSi quelqu'un à déjà écris un tel programme, je veux bien qu'il éclaire ma lanterne, je suis à bout d'idées...
Je vous joins mon fichier Excel, le programme que j'ai écris est la Sub "Try3", et mon document Word (Sub "Try1").
Je vous remercie d'avance...
Amis programmeurs, bonsoir...
ProutProutProut.
Bonjour
Pourquoi pas tout simplement un cherche et remplace ?
Salut Chris, le pb avec un search/replace est que je suis obligé de conserver en memoire la valeur du dernier changement que j’ai fait, afin de pouvoir refaire un changement de valeur au meme endroit apres...