Conversion Chiffres Anglais/Français Français/Anglais sous WORD

Conversion Chiffres Anglais/Français Français/Anglais sous WORD - VB/VBA/VBS - Programmation

Marsh Posté le 05-02-2007 à 23:18:43    

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 :
  1. Sub Macro1()
  2. ' UK FR
  3. ' Conversion de l'anglais vers le français
  4.     Selection.Find.ClearFormatting
  5.     Selection.Find.Replacement.ClearFormatting
  6.     With Selection.Find
  7.         .Text = ","
  8.         .Replacement.Text = "^s"
  9.         .Forward = True
  10.         .Wrap = wdFindAsk
  11.         .Format = False
  12.         .MatchCase = False
  13.         .MatchWholeWord = False
  14.         .MatchWildcards = False
  15.         .MatchSoundsLike = False
  16.         .MatchAllWordForms = False
  17.     End With
  18.     Selection.Find.Execute Replace:=wdReplaceAll
  19.    
  20.     Selection.Find.ClearFormatting
  21.     Selection.Find.Replacement.ClearFormatting
  22.     With Selection.Find
  23.         .Text = "."
  24.         .Replacement.Text = ","
  25.         .Forward = True
  26.         .Wrap = wdFindAsk
  27.         .Format = False
  28.         .MatchCase = False
  29.         .MatchWholeWord = False
  30.         .MatchWildcards = False
  31.         .MatchSoundsLike = False
  32.         .MatchAllWordForms = False
  33.     End With
  34.     Selection.Find.Execute Replace:=wdReplaceAll
  35. End Sub
  36. Sub Macro2()
  37. ' FR UK
  38. ' Conversion du français vers l'anglais
  39. '
  40.     Selection.Find.ClearFormatting
  41.     Selection.Find.Replacement.ClearFormatting
  42.     With Selection.Find
  43.         .Text = ","
  44.         .Replacement.Text = "."
  45.         .Forward = True
  46.         .Wrap = wdFindAsk
  47.         .Format = False
  48.         .MatchCase = False
  49.         .MatchWholeWord = False
  50.         .MatchWildcards = False
  51.         .MatchSoundsLike = False
  52.         .MatchAllWordForms = False
  53.     End With
  54.     Selection.Find.Execute Replace:=wdReplaceAll
  55.    
  56.     Selection.Find.ClearFormatting
  57.     Selection.Find.Replacement.ClearFormatting
  58.     With Selection.Find
  59.         .Text = " "
  60.         .Replacement.Text = ","
  61.         .Forward = True
  62.         .Wrap = wdFindAsk
  63.         .Format = False
  64.         .MatchCase = False
  65.         .MatchWholeWord = False
  66.         .MatchWildcards = False
  67.         .MatchSoundsLike = False
  68.         .MatchAllWordForms = False
  69.     End With
  70.     Selection.Find.Execute Replace:=wdReplaceAll
  71.    
  72.     Selection.Find.ClearFormatting
  73.     Selection.Find.Replacement.ClearFormatting
  74.     With Selection.Find
  75.         .Text = "^s"
  76.         .Replacement.Text = ","
  77.         .Forward = True
  78.         .Wrap = wdFindAsk
  79.         .Format = False
  80.         .MatchCase = False
  81.         .MatchWholeWord = False
  82.         .MatchWildcards = False
  83.         .MatchSoundsLike = False
  84.         .MatchAllWordForms = False
  85.     End With
  86.     Selection.Find.Execute Replace:=wdReplaceAll
  87. End Sub

Reply

Marsh Posté le 05-02-2007 à 23:18:43   

Reply

Marsh Posté le 06-02-2007 à 07:34:17    

Bonjour,
aurais-tu quelquepart un:
Application.DisplayAlerts = wdAlertsNone
 
Cordialement

Reply

Marsh Posté le 07-02-2007 à 01:39:18    

Merci pour ta réponse, mais non je n'ai nulle part quelque chose de ce type...

Reply

Marsh Posté le 29-05-2009 à 17:32:10    

Est ce que tu as réussi à limiter ton rechercher remplacer à une sélection en le mettant dans une macro.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed