kitcreanet | 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 :
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
- End With
- 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
- End With
- Selection.Find.Execute Replace:=wdReplaceAll
- End Sub
- 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
- End With
- 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
- End With
- 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
- End With
- Selection.Find.Execute Replace:=wdReplaceAll
- End Sub
|
|