Remplacer plusieurs caractères sur Excel
Bonjour,
J'ai farfouillé le site ainsi que d'autres mais je ne trouve pas ce que je souhaite, à savoir :
Une macro permettant de changer plusieurs caractères dans un texte sans changer les caractères initiaux par leurs changements.
Pour faire plus clair ( :)) :
"bonjour" -> "lngknea"
b : l
o : n
n : g
j : k
o : n
u : e
r : a
Et non :
"bonjour" -> "lggkgea" : comme le "o" devient "n", la macro change le "n" en "g", donc ça fait "gg" au lieu de "ng".
J'avais pris la macro suivante :
Sub remplacerCaracteres()
Dim Cell As Variant
For Each Cell In Selection
Cell.Value = Replace(Cell.Value, "b", "l")
Next Cell
End Sub
Et j'avais ajouté à la suite les lignes correspondantes à chaque lettre :
Sub remplacerCaracteres()
Dim Cell As Variant
For Each Cell In Selection
Cell.Value = Replace(Cell.Value, "b", "l")
Cell.Value = Replace(Cell.Value, "o", "n")
Cell.Value = Replace(Cell.Value, "n", "g")
Cell.Value = Replace(Cell.Value, "j", "k")
Cell.Value = Replace(Cell.Value, "u", "e")
Cell.Value = Replace(Cell.Value, "r", "a")
Next Cell
End Sub
Et du coup ça me remplaçait tout, y compris les caractères déjà changés.
J'ai essayé de modifier en mettant :
Cell.Value = Replace(Replace(Cell.Value, "b", "l"),"o", "n")
Etc
Mais ça ne fonctionne pas.
Quelqu'un saurait-il m'aider ?
Merci !
J'ai farfouillé le site ainsi que d'autres mais je ne trouve pas ce que je souhaite, à savoir :
Une macro permettant de changer plusieurs caractères dans un texte sans changer les caractères initiaux par leurs changements.
Pour faire plus clair ( :)) :
"bonjour" -> "lngknea"
b : l
o : n
n : g
j : k
o : n
u : e
r : a
Et non :
"bonjour" -> "lggkgea" : comme le "o" devient "n", la macro change le "n" en "g", donc ça fait "gg" au lieu de "ng".
J'avais pris la macro suivante :
Sub remplacerCaracteres()
Dim Cell As Variant
For Each Cell In Selection
Cell.Value = Replace(Cell.Value, "b", "l")
Next Cell
End Sub
Et j'avais ajouté à la suite les lignes correspondantes à chaque lettre :
Sub remplacerCaracteres()
Dim Cell As Variant
For Each Cell In Selection
Cell.Value = Replace(Cell.Value, "b", "l")
Cell.Value = Replace(Cell.Value, "o", "n")
Cell.Value = Replace(Cell.Value, "n", "g")
Cell.Value = Replace(Cell.Value, "j", "k")
Cell.Value = Replace(Cell.Value, "u", "e")
Cell.Value = Replace(Cell.Value, "r", "a")
Next Cell
End Sub
Et du coup ça me remplaçait tout, y compris les caractères déjà changés.
J'ai essayé de modifier en mettant :
Cell.Value = Replace(Replace(Cell.Value, "b", "l"),"o", "n")
Etc
Mais ça ne fonctionne pas.
Quelqu'un saurait-il m'aider ?
Merci !
4 réponses
-
Bonjour et merci pour vos réponses,
J'ai essayé les différentes méthodes proposées et à l'heure actuelle je ne suis parvenu qu'à faire fonctionner celle de Pikaju.
Cependant, j'ai un texte complet à convertir et il me semble que cette solution ne fonctionne que pour le mot paramétré initialement.
Par conséquent, si je crée deux colonnes :
- 1 : lettres, chiffres, signes de ponctuation
- 2 : équivalences
Est-ce que je peux obtenir un résultat pour l'ensemble des mots présents dans ces colonnes sans msgbox ?-
ModérateurBonjour,
Excuse, je n'ai pas vu cette question.
Pour "crypter" et/ou "décrypter" de plus longs messages, il suffit de placer les caractères (lettres, chiffres, ponctuation...) dans :Lettres = Array("b", "o", "n", "j", "u", "r")
et leurs équivalences, dans l'ordre, dans :A_Remplacer_Par = Array("l", "n", "g", "k", "e", "a")
-