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.
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 Subet 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 SubEt 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