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'hui73
Hier2479
Cette semaine4974
Ce mois38385
Total depuis 200410714072

6
visiteurs actuellement en ligne