Bonsoir à tous,
J'ai un petit soucis que je n'arrive pas à régler en VBA (même si je me creuse la tête).
J'ai un numéro de dossier de type "123456789" et une somme indiquée sous la forme "123456789 euros"
Le numéro de dossier est issu d'un champ de fusion publipostage mais le séparateur de millier ne doit pas s'y appliquer.
En revanche, la somme en euros n'a pas de champ de fusion propre, elle est incorporée dans un champ de fusion plus important au format texte et sa place dans le texte peut bouger en fonction des données de la base Excel. Le seul repère est qu'elle est suivie de "euros" ou toujours précédé par "montant de".
J'essaye de bidouiller un macro avec la fonction Recherche-Remplacer (avec enregistreur de macro) mais rien n'y fait.
Par exemple pour 1500 euros
Je cherche :
([0-9])([0-9][0-9][0-9]) euros
Je remplace:
([0-9]) ([0-9][0-9][0-9]) euros
Le résultat est :
([0-9]) ([0-9][0-9][0-9]) euros
Puisqu'il ne s'agit que de chiffres, une macro doit pouvoir s'appliquer (Format, Numeric,...). Je n'arrive pas à en faire fonctionner une seule so far.
Si quelqu'un pouvait avoir l'amabilité de m'aider, merci d'avance.
Cordialement,
Julo.
Ci-joint la macro enregistrée sans mes tentatives de modification :
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 Sub Macro2() ' ' Macro2 Macro ' Macro recorded 11/09/2014 by Diarra ' Selection.Find.ClearFormatting Selection.Find.Replacement.ClearFormatting With Selection.Find .Text = "([0-9][0-9][0-9][0-9]) euros" .Replacement.Text = "([0-9] [0-9][0-9][0-9]) euros" .Forward = True .Wrap = wdFindContinue .Format = False .MatchCase = False .MatchWholeWord = False .MatchAllWordForms = False .MatchSoundsLike = False .MatchWildcards = True End With Selection.Find.Execute Replace:=wdReplaceAll End Sub
Partager