Excel VBA - Remplacer du texte dans des zones de texte sur Word

macmun Messages postés 35 Statut Membre -  
macmun Messages postés 35 Statut Membre -
Bonjour,

Comme mon titre l'indique je souhaiterais modifier du texte sur un document Word en fonction de données se trouvant sur une feuille Excel. Seulement voilà, il remplace bien tout ce qui se trouve dans le corps "normal" du texte sur le document Word mais pas ce qui se trouve dans la zone de texte . Quelqu'un pourrait me dire s'il y a moyen qu'il cherche PARTOUT sur le document pour faire mes remplacements ?

Merci d'avance.

Cordialement,

Macmun




cheminfichier = Sheets("Données").Range("d3").Value
nomfichier = Sheets("Données").Range("d2").Value & ".doc"

Set word_app = CreateObject("Word.Application")
With word_app
.Visible = False
.WindowState = wdWindowStateMaximize
End With

Sheets("Feuil1").Shapes.Range(Array("copies")).Select
Selection.Verb Verb:=xlOpen


For i = 1 To 19

word_app.Selection.Find.ClearFormatting
word_app.Selection.Find.Replacement.ClearFormatting
With word_app.Selection.Find
.Text = Sheets("Données").Cells(i, 1).Value
.Replacement.Text = Sheets("Données").Cells(i, 2).Value
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False

End With
word_app.Selection.Find.Execute Replace:=2
Next

word_app.ActiveDocument.SaveAs Filename:=cheminfichier & nomfichier
word_app.ActiveDocument.Close SaveChanges:=wdDoNotSaveChanges


A voir également:

3 réponses

Bruce Willix Messages postés 13499 Statut Contributeur 2 594
 
Pourquoi vous ne faites pas bêtement un publipostage ?
0
macmun Messages postés 35 Statut Membre
 
Parce que beaucoup de champs se remplissent différemment en fonction de pas mal de conditions et que pour traiter ces conditions, rien de mieux et de plus simple qu'excel. Sauf qu'il y a ces satanés zones de texte :-(
0
macmun Messages postés 35 Statut Membre
 
Personne pour m'aider ? Je suis vraiment dans l'impasse.

Merci d'avance.
0