Bonjour à tous,
- Le contexte : La fonction ci-dessous est intégrée dans une module Access et doit être compatible avec les outils office 2002 et 2013.
Elle est utilisé dans un 'publipostage' maison via un outil Access sur le document Word actif.
- Mon problème : quand NewValue = "", aucun remplacement n'est effectué, sauf si je remplace "" par un espace comme dans le 'test Gillou.
Mais au rendu final, c'est pas propre.
Y a t'il un moyen pour forcer le remplacement par une chaîne vide via cette fonction ?
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 Public Sub ReplaceInWord(ByRef appword As Object, ByRef OldValue As String, ByRef NewValue As String, Optional Lngcolor As Long = 0) 'remplace tous les occurences de OldValue par NewValue dans le document actif de appword : Debug.Print OldValue & " > " & NewValue Dim tmpRange As Word.Range For Each tmpRange In appword.ActiveDocument.StoryRanges With tmpRange.Find .Text = OldValue 'test Gillou 'If NewValue <> "" Then .Replacement.Text = NewValue 'Else ' .Replacement.Text = " " 'End If .Wrap = wdFindContinue .ClearFormatting .Replacement.ClearFormatting If Lngcolor <> 0 Then .Font.Color = Lngcolor End If .Replacement.Highlight = False .Forward = True .Execute Replace:=wdReplaceAll End With Next tmpRange End Sub
Merci d'avance pour les infos
Partager