J'ai un problème avec une macro VBA Word créée il y a longtemps et dont l'exécution était rapide. Maintenant, sous Word 2019 ou 2021, la macro est très logue à s'exécuter, pratiquement 3 minutes. Je pense que la macro a besoin d'être mise à jour et ou optimisée, mais je sais pas comment.
Il s'agit d'une macro destinée à remplacer un mot par un autre, mettre à jour des champs, les entêtes et pieds de page.
La voici :
Sub maj_champs()
' Remplacement pour mettre une majuscule à Docteur
' Si vous souhaitez lancer la recherche par le début du document, vous devez déplacer la sélection vers le début de votre document avec :
Selection.HomeKey Unit:=wdStory
Application.ScreenUpdating = False
With Selection.Find
.Forward = True
.Text = "docteur"
.Replacement.Text = "Docteur"
.Execute
End With
Selection.Find.Execute Replace:=wdReplaceAll
'
' maj_champs Macro
'
'
'Mise a jour du corps du document
For Each champ In ActiveDocument.Range.Fields
champ.Update
Next champ
'Mise a jour des En-tetes et Pieds-de-page de la Section 1
'Declaration ds variables
Dim oField As Field
Dim oHeader As HeaderFooter
Dim oFooter As HeaderFooter
'Mise a jour des En-tetes de la Section 1
For Each oHeader In ActiveDocument.Sections(1).Headers
If oHeader.Exists Then
For Each oField In oHeader.Range.Fields
oField.Update
Next oField
End If
Next oHeader
'Mise a jour des Pieds-de-page de la Section 1
For Each oFooter In ActiveDocument.Sections(1).Footers
If oFooter.Exists Then
For Each oField In oFooter.Range.Fields
oField.Update
Next oField
End If
Next oFooter
'Masquer le texte caché de la conclusion
ActiveWindow.View.ShowHiddenText = False
Application.ScreenUpdating = True
End Sub
Merci pour votre aide.
Samuel