VBA: Remplacement de mots

Bonjour à tous,

Etant novice en VBA, je me permet de vous poster mon petit problème.

J'ai une cellule (dont le format est présenté dans le classeur ci-joint et dont j'aimerais que la forme, les espaces etc... reste tel quel) où j'aimerais faire un remplacement simple de mots.

9classeur1.xlsm (15.66 Ko)

Ma cellule a des mots en anglais avec une clé associé à un mot, je fais une macro pour que le texte passe en francaisavec les nouvelles clés associés. Ceci pour tout les onglets de mon fichier. J'ai donc deux codes VBA, un pour passer une cellule de français à anglais et l'autre pour le chemin inverse: passer une cellule d'anglais à français

Le problème viens lorsque je traduit ma cellule d'anglais à français.

En effet, lorsque je reviens en Français j'ai un probleme avec le remplacement du mot "EN1" par "TEST"

le code me replace EN1 par TEST mais EN11, EN12 et EN13 donnent TEST1,TEST2,TEST3 au lieu de FR11,FR12,FR13.

Quelqu'un aurait une idée de comment je pourrais améliorer mon code ? J'ai bien conscience que ce que j'ai produit est vraiment débutant.

J'espère avoir été clair dans ma description

Je vous remercie pour votre temps et votre aide! :)

Le passage en anglais :

Sub Remplace_Eng()
Dim Sh As Worksheet
For Each Sh In Worksheets
  Sh.Range("A1:IV85").Replace What:="LUN", Replacement:="MON", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="MAR", Replacement:="TUE", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="MER", Replacement:="WEN", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="JEU", Replacement:="THUR", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="TEST", Replacement:="EN1", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="FR11", Replacement:="EN11", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="FR12", Replacement:="EN12", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="FR13", Replacement:="EN13", LookAt:=xlPart
Next
End Sub

et le passage en Francais:

Sub Remplace_FR()
Dim Sh As Worksheet
For Each Sh In Worksheets
  Sh.Range("A1:IV85").Replace What:="MON", Replacement:="LUN", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="TUE", Replacement:="MAR", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="WEN", Replacement:="MER", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="THUR", Replacement:="JEU", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN1", Replacement:="TEST", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN11", Replacement:="FR11", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN12", Replacement:="FR12", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN13", Replacement:="FR13", LookAt:=xlPart
Next
End Sub

Et le format de ma cellule est dans le classeur

bonsoir,

Quelqu'un aurait une idée de comment je pourrais améliorer mon code ?

une façon de faire, adapter l'ordre de tes instructions replace

Sub Remplace_FR()
Dim Sh As Worksheet
For Each Sh In Worksheets
  Sh.Range("A1:IV85").Replace What:="MON", Replacement:="LUN", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="TUE", Replacement:="MAR", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="WEN", Replacement:="MER", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="THUR", Replacement:="JEU", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN11", Replacement:="FR11", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN12", Replacement:="FR12", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN13", Replacement:="FR13", LookAt:=xlPart
  Sh.Range("A1:IV85").Replace What:="EN1", Replacement:="TEST", LookAt:=xlPart
Next
End Sub
Rechercher des sujets similaires à "vba remplacement mots"