Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1159 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°1511190
kitcreanet
Posté le 05-02-2007 à 23:18:43  profilanswer
 

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

mood
Publicité
Posté le 05-02-2007 à 23:18:43  profilanswer
 

n°1511220
seniorpapo​u
Posté le 06-02-2007 à 07:34:17  profilanswer
 

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

n°1511636
kitcreanet
Posté le 07-02-2007 à 01:39:18  profilanswer
 

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

n°1889604
playlife
Posté le 29-05-2009 à 17:32:10  profilanswer
 

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


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

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

 

Sujets relatifs
[word] surcharger la commande "sauvegarder sous"[word] incompatibilité "renvoi signet" et "en tête"
[word] incompatibilité macro et formulaireConversion décimal/binaire/hexadécimal
Conversion de int et float en string en CGraphiques word
Conversion XSD en DTDC++ Conversion de string vers long
Recherche et remplacement des graphiques ds Wordwarning: [unchecked] unchecked conversion
Plus de sujets relatifs à : Conversion Chiffres Anglais/Français Français/Anglais sous WORD


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR