Bonjour,

Je fais du VB pour la première fois aujourd'hui et j'avoue ne pas tout comprendre ...
Je cherche simplement à remplacer des chaînes de caractères dans un document Word (par exemple remplacer [nom] par Toto). La fonction que j'ai écrite fonctionne si mon texte à rechercher ne se trouve pas dans une zone de texte Word (menu insertion/Zone de texte) !! J'ai absolument besoin d'utiliser des zones de texte !

Ce qui est étrange c'est que lorsque je lance la commande rechercher/remplacer sous Word, celui ci me remplace bine les mots situés dans les zones de texte !
Voici le code VB
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 
Sub Remplacer_texte(Texte_à_remplacer As Variant, Texte_de_remplacement As Variant, Tout As Boolean)
 
With Word_Application
    .Selection.find.ClearFormatting
    .Selection.find.Replacement.ClearFormatting
 
     With .Selection.find
          .Text = Texte_à_remplacer
         .Replacement.Text = Texte_de_remplacement
         .Forward = True
         .Wrap = wdFindContinue
         .Format = False
         .MatchCase = False
         .MatchWholeWord = False
         .MatchWildcards = False
         .MatchSoundsLike = False
         .MatchAllWordForms = False
    End With
    .Selection.find.Execute
 
    With .Selection
         If .find.Forward = True Then
             .Collapse Direction:=wdCollapseStart
         Else
             .Collapse Direction:=wdCollapseEnd
         End If
         If Tout Then
             .find.Execute Replace:=wdReplaceAll
         Else
             .find.Execute Replace:=wdReplaceOne
         End If
     End With
 End With
 
 End Sub
Quelqu'un a-t-il déjà rencontré ce problème ?

Merci d'avance.