Traduire un môt en chiffre

Résolu
jps.forum -  
 jps.forum -
Bonjour
Comment lire un nom dans une cellule, en prenant chaque lettre une à une , et attribuer dans une autre cellule un nombre numérique ( chaque chiffre correspond a une lettre )
Exemple: en C17 j'ai BILLARD le résultat en C18 est 1455172
Critère de correspondance des lettres / chiffres:
A ou B = 1
C " D = 2
E"F = 3
G"H"I = 4
J"K"L = 5
M"N"O = 6
P"Q"R = 7
S"T = 8
U"V"W = 9
X"Y"Z = 0
J'arrive à faire la correspondance avec une seule lettre par cellule.
Merci de votre aide
Configuration: Windows Vista
Firefox 3.5.5

4 réponses

  1. pilas31 Messages postés 1878 Statut Contributeur 648
     
    Bonjour,

    Une solution un peu "simpliste" à partir de la fonction SUBSTITUE. Un exemple ici :

    http://www.cijoint.fr/cjlink.php?file=cj200912/cijKyb1bxP.xls

    Il faut afficher les colonnes masquées pour comprendre le fonctionnement.

    Il y a peut-être une solution matricielle mais je n'ai pas trouvé

    A+

    EDIT : il y a des macros dans mon exemple, ne pas en tenir compte, elles ne servent pas se sont des résidus d'essais...
    0
  2. jps.forum
     
    Merci pour la réponse mais je n'arrive pas a ouvrir ton exemple.
    0
  3. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonjour et merci,

    je n'ai toujours pas trouvé comment concaténer en matriciel sans passer par MCONCAT.
    Je ne crois pas que Morefunc soit porté sur 2007. Donc ça peut devenir problématique.

    En plus, le comportement de certaines fonctions est "conflictuel ou curieux" en matriciel. C'est pour cela que je me suis rabattu sur CHOISIR().
    Par exemple, =SOMMEPROD((INDEX($B$1:$B$26;CODE(STXT($F$2;LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15))));1))-64))*(10^(NBCAR(DROITE($F$2;15))-LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15))))))) qui fournit une solution a priori équivalente à la 1ère proposition en s'appuyant sur une table de transcodage en A1:B26, ne fonctionne pas lorsque cette formule est dans une seule cellule. En revanche, si on l'inscrit dans une matrice d'au moins 2 cellules, elle fonctionne et répète le bon résultat dans chaque cellule.
    Pour moi c'est une énigme.

    cordialement
    0
    1. jps.forum
       
      Bonsoir a vous tous

      Merci de vos réponses, j'ai également ouvert une autre discutions sur un autre forum
      je vous invite a regarder les réponses sur le lien ci-dessous.
      La communauté d'entre-aide est vraiment fabuleuse!!!!!!
      Encore merci d'avoir participé a cette discutions


      http://www.veriti.net/forum2/viewtopic.php?f=1&t=2447&p=16218#p16218
      0
  4. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonsoir,

    si le mot à convertir est en F2 et en MAJUSCULES :

    1ère proposition : (limitée à 15 caractères pour cause de conversion numérique)
    =SOMMEPROD(CHOISIR(CODE(STXT($F$2;LIGNE(INDIRECT("1:"&NBCAR($F$2)));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0)*(10^(NBCAR($F$2)-LIGNE(INDIRECT("1:"&NBCAR($F$2))))))
    validation par CTRL+MAJ+ENTER

    2ème proposition : (limitée à 255 caractères)
    utiliser la fonction MCONCAT de la bibliothèque MOREFUNC de Laurent Longre.
    =MCONCAT(CHOISIR(CODE(STXT($F$2;LIGNE(INDIRECT("1:"&NBCAR($F$2)));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0))
    validation par CTRL+MAJ+ENTER

    3ème proposition : (limitée à 30 caractères, numérique "amélioré")
    =SI(ET(NBCAR($F$2)>15;NBCAR($F$2)<30);SOMMEPROD(CHOISIR(CODE(STXT(GAUCHE($F$2;NBCAR($F$2)-15);LIGNE(INDIRECT("1:"&NBCAR($F$2)-15));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0)*(10^(NBCAR($F$2)-15-LIGNE(INDIRECT("1:"&NBCAR($F$2)-15)))))&"";"")&SOMMEPROD(CHOISIR(CODE(STXT(DROITE($F$2;15);LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15))));1))-64;1;1;2;2;3;3;4;4;4;5;5;5;6;6;6;7;7;7;8;8;9;9;9;0;0;0)*(10^(NBCAR(DROITE($F$2;15))-LIGNE(INDIRECT("1:"&NBCAR(DROITE($F$2;15)))))))&""
    ation par CTRL+MAJ+ENTER

    En dehors des formules, il y a toutes les possibilités de VBA.

    cordialement
    -1
    1. pilas31 Messages postés 1878 Statut Contributeur 648
       
      Bravo,

      Magnifique solution matricielle j'avais séché sur le sujet ....

      A+
      0