Chiffres UK vers FR et FR vers UK dans Word

kitcreanet Messages postés 2 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 6 février 2007 - 5 févr. 2007 à 23:27
kitcreanet Messages postés 2 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 6 février 2007 - 6 févr. 2007 à 13:23
Bonjour à tous !

J'ai besoin de convertir des valeurs chiffrées dans des tableaux Word
de l'anglais vers le français, ou au contraire du français vers
l'anglais.

C'est une manipulation assez simple à l'aide d'un simple chercher/remplacer.

Pour passer du français à l'anglais, je remplace la virgule par un point et l'espace par une virgule :

1 123,56 > 1,234.56

Pour passer de l'anglais vers le français, je remplace la virgule par une espace et le point par une virgule :

1,234.56 > 1 123,56


Cette recherche s'effectue sur une sélection de cellules et lorsque Word demande si on doit étendre au reste du document, la réponse "Non" suffit à limiter cette recherche à la sélection...


Tout ceci fonctionne admirablement bien manuellement et lorsque
j'enregistre mes manips dans une macro... Le problème, c'est que quand
je relance cette macro, le traitement s'opère, non pas seulement sur la
sélection, mais sur tout le document... (tous mes espaces sont
remplacés par des "virgules", les "virgules" par des "points"... Bref
c'est la chianlit...

J'ai cherché partout d'où cela peut bein provenir et je sèche lamentablement...


Je travailles sous WinXP, et Office 2003...


Voici un exemple de code :

Sub Macro1()
' UK FR
' Conversion de l'anglais vers le français
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ","
.Replacement.Text = "^s"
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
EndWith
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "."
.Replacement.Text = ","
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
EndWith
Selection.Find.Execute Replace:=wdReplaceAll
EndSub
Sub Macro2()
' FR UK
' Conversion du français vers l'anglais
'
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ","
.Replacement.Text = "."
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
EndWith
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = " "
.Replacement.Text = ","
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
EndWith
Selection.Find.Execute Replace:=wdReplaceAll

Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = "^s"
.Replacement.Text = ","
.Forward = True
.Wrap = wdFindAsk
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
EndWith
Selection.Find.Execute Replace:=wdReplaceAll
EndSub

2 réponses

mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
6 févr. 2007 à 12:40
Salut,

dans tes expressions :
Selection.Find.Execute Replace:= wdReplaceAll

remplace wdReplaceAll par wdReplaceOne

@++

<hr width ="100%" size="2" />
  --Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
0
kitcreanet Messages postés 2 Date d'inscription vendredi 3 novembre 2000 Statut Membre Dernière intervention 6 février 2007
6 févr. 2007 à 13:23
Merci pour cette réponse mais cela ne fonctionne pas.
Si je remplace wdReplaceAll par wdReplaceOne le traitement s'arrête à la première cellule...
0
Rejoignez-nous