Remplacer les lettres d'un texte par d'autres.

MaxyLord

XLDnaute Nouveau
Bonjour,
C'est assez compliquer mais je vais faire de mon mieux.

J'aimerais créer une sorte de traducteur via excel. C'est à dire taper un texte, et remplacer les A par un symbole, les B par un autre, ect.
Je voulais donc savoir si c'était possible sur la plateforme excel, et si oui comment.

Merci d'avance pour vos réponses.
 

MaxyLord

XLDnaute Nouveau
Je n'ai pas bien compris, mais il vous faudrait un exemple c'est ça ?
Voilà ci-joint un exemple plus parlant.
Je sais que le langage est étrange mais je vous pris de ne pas y prêter attention.
 

Pièces jointes

  • Nouveau Feuille de calcul Microsoft Excel (2).xlsx
    10.4 KB · Affichages: 15
Dernière édition:

MaxyLord

XLDnaute Nouveau
Merci pierrejean mais cela m'affiche une erreur.
"Le texte que vous avez tapé ni une référence ni un nom défini valides"
Je ne sais pas si cela viens de ma version, au quel cas je suis désolé de mettre tromper, de la commande en elle même ou d'une fonction que j'aurais oublier d'activer.
J’espère que vous pourrais m'éclairer, merci d'avance.
 

jmfmarques

XLDnaute Accro
Bonjour à tous
J'aimerais bien que MaxyLord nous explique comment il a pu recevoir ce message d'erreur :
Merci pierrejean mais cela m'affiche une erreur.
"Le texte que vous avez tapé ni une référence ni un nom défini valides"
alors que, nous dit-il :
Merci pierrejean mais cela m'affiche une erreur.
"Le texte que vous avez tapé ni une référence ni un nom défini valides"
 

jmfmarques

XLDnaute Accro
j'ai personnellement des difficultés à croire qu'il y en a.
je n'ai ouvert (je ne le fais jamais) aucun classeur, mais il parait évident que la lettre A ayant pour code ascii 65, la lettre B 66, etc ...
Il suffit d'une colonne (disons A) ou l'on met les "traductions":
traduction de A en A1, de B en A2, de C en A3... etc ...
Ensuite pour chaque lettre du texte :
- en extraire son code X
- et la traduire par ce que l'on a en ligne X - 64 de la colonne A

Mais c'est peut-être trop "simple" (et pourquoi faire simple quand on peut faire compliqué) ? :cool:
 

pierrejean

XLDnaute Barbatruc
Re
pour monsieurquinouvrejamaislesfichiers
VB:
Sub traduire()
Set dico = CreateObject("Scripting.dictionary")
For n = 2 To 27
  x = Range("A" & n)
  dico(x) = Range("C" & n)
Next
atraduire = Range("G2")
For n = 1 To Len(atraduire)
  If UCase(Mid(atraduire, n, 1)) <> " " Then
     trad = trad & dico(UCase(Mid(atraduire, n, 1)))
  Else
     trad = trad & " "
  End If
Next
Range("G3") = trad
End Sub
 

jmfmarques

XLDnaute Accro
Bonjour pierrejean
je déduis du code que tu montres là que les traductions commencent en ligne 2 --->>
mettons donc ces 26 traductions (des lettres A à Z) de la ligne 2 à la ligne 27 de la colonne A
mettons en D1 (exemple) le texte à traduire.
et voyons ce que fait ce code :
VB:
chaine = UCase(Range("D1").Value)
  TRAD = ""
  For K = 1 To Len(chaine)
    toto = Mid(chaine, K, 1)
    Select Case toto
      Case "A" To "Z"
        TRAD = TRAD & Range("A" & Asc(toto) + 1 - 64)
      Case Else
        TRAD = TRAD & toto
    End Select
  Next
  Range("E1").Value = TRAD

Ceci dit, je commencerais personnellement (avare) en ligne 1

Amitié
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 084
Messages
2 085 194
Membres
102 811
dernier inscrit
caroline29260