Voici une macro permettant de remplacer un mot par un autre (ici "premier texte" remplacé par "deuxième texte") dans une série de documents d’un meme dossier.

 

Public Sub RemplacementGlobal()
Dim MonDocument
Dim MonRepertoire
Dim NbDocuments As Integer
MonRepertoire = Options.DefaultFilePath(wdDocumentsPath)
'Attention sous NT, il faut rajouter ces lignes qui comptent les fichiers sinon on ouvre et transforme en boucle :
MonDocument = Dir(MonRepertoire & "*.doc")
While MonDocument <> ""
NbDocuments = NbDocuments + 1
MonDocument = Dir
Wend
'fin du comptage sous NT
MonDocument = Dir(MonRepertoire & "*.doc")
= 1
While MonDocument <> "" And i <= NbDocuments
= i + 1
Documents.Open (MonRepertoire & "" & MonDocument)
ActiveWindow.View.ShowFieldCodes = True
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
Set myRange = ActiveDocument.Content
With myRange.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "premier texte"
.Replacement.Text = "deuxième texte"
.Execute Replace:=wdReplaceAll ' peut être la raison
End With
Selection.Fields.Update
Documents(1).Close wdSaveChanges
MonDocument = Dir
Wend
End Sub

 

NB : Si le texte à remplacer se trouve dans les pieds de page, à la place d'un simple

Set myRange = ActiveDocument.Content

Il faudra mettre :

For each S in ActiveDocument.Sections
For each F in S.Footers
Set myRange = F.Range
'----ici les opérations de recherche-remplacement
Next F
Next

Statistiques

Aujourd'hui1859
Hier1967
Cette semaine5784
Ce mois30199
Total depuis 200410503165

13
visiteurs actuellement en ligne