Codage

Résolu
valentin -  
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je souhaiterais faire une formule qui me permettrai de remplacer une serie de chiffres et lettres par une autre. Je m'explique : Si je saisi 124X dans une cellule, j'aimerai que par exemple le 1 se transforme en T, que je 2 se transforme en Z, le 4 en F, le X en 8 et que le résultat (TZF8) apparaisse dans une autre cellule.

Quelqu'un peut-il m'aider svp ?

Je vous remercie par avance ;-)



Configuration: Windows / Chrome 77.0.3865.90

7 réponses

Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Bonjour
voyez si ce modèle peut vous servir, et si ça ne convient pas, revenez en nous disant pourquoi, car on ne connaît pas la configuration de toutes vos données et une exemple, ça fait un peu juste!
https://mon-partage.fr/f/Yp0qlPTp/
à+
crdlmnt
0
valentin
 
Bonjour et merci pour le fichier. Oui c'est ce type de formule qu'il me faut :)

Pour compléter ma demande, le but est de "coder" des références fournisseurs. C'est références sont alphanumériques. Donc, idéalement, il faudrait que cela fonctionne avec toutes les lettres de l'alphabet. (exemples de référence : 32G7752B, 58B40654R) Les références peuvent comporter jusqu’à 12 caractères.
Et il faudrait que l'inverse fonctionne aussi, c'est à dire qu'en tapant la référence "codée", cela me ressorte la référence initiale (non codée) afin de la retrouver dans mon stock.

J’espère que je m'exprime de façon assez claire .. ;)

Encore merci :)
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
c'est un peu compliqué... que voulez vous exactement
1°)vous partez d'un code pour obtenir un autre code, et vous voulez aussi l'inverse?
2°) un code numérique va comprendre une suite de chiffres de 0 à 9. Comment détecter dans ce code s'il faut utiliser un 2 et un 6 accolé pour obtenir B et F ou 26 pour obtenir Z? Difficile d'utiliser tout l'alphabet?
Si vous pouvez, déposez ici un modèle avec une série le plus complète possible de ce que vous souhaitez dans les deux sens; on verra ce que l'on peut faire, mais compte tenu du point N°2, je ne promets rien.
A vous lire, sur ce site ou déposer le modèle, créer le lien et revenir le coller:
http://mon-partage.fr
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Re,

Ou avec un fonction personnalisée :
Option Explicit
Function CodeValentin(texte As String) As String
Const a$ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
Const b$ = "gXDMRlJhUTCoQEscfN30BV68W29p1Zubqzdiwr5SIPFtHkG4O7nLaKvexyYAjm"
Dim i&, t$
  t = texte
  For i = 1 To Len(t)
    Mid(t, i, 1) = Mid(b, InStr(1, a, Mid(t, i, 1), vbBinaryCompare), 1)
  Next i
  CodeValentin = t
End Function


0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Et pour décoder :
Function DecodeValentin(texte As String) As String
Const a$ = "gXDMRlJhUTCoQEscfN30BV68W29p1Zubqzdiwr5SIPFtHkG4O7nLaKvexyYAjm "
Const b$ = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz "
Dim i&, t$
  t = texte
  For i = 1 To Len(t)
    Mid(t, i, 1) = Mid(b, InStr(1, a, Mid(t, i, 1), vbBinaryCompare), 1)
  Next i
  DecodeValentin = t
End Function
0
valentin
 
Merci pour votre réponse Patrice. Mais je n'y connais pas grand chose en EXCEL et je ne sais pas ou insérer cette fonction ni comment cela fonctionne. (variable...)
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Dans ce cas il vaut mieux utiliser une formule (cf. la réponse de Vaucluse que je salue)
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
RE,

Un essai pour des références de 12 caractères maximum :
https://www.cjoint.com/c/IJcqdvBFIeq
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Et si tu ne veux par les colonnes intermédiaire, en B2 :
=SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);1;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);2;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);3;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);4;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);5;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);6;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);7;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);8;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);9;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);10;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);11;1);$Q$1);1);"")&SIERREUR(STXT($Q$2;TROUVE(STXT($A2&REPT("?";36);12;1);$Q$1);1);"")
0
valentin
 
Merci à vous tous ;)
Pour le codage c'est nikel, mais pour que l'inverse fonctionne aussi j'ai l’impression que ce n'est pas possible.
De taper la code obtenu dans une cellule et que ca me redonne la référence initiale.
Par exemple que la référence initiale 124X, qui donne TZF8 une fois codée, et bien de taper TZF8 dans une cellule et que ca me ressorte 124X. En gros pouvoir coder et décoder..
Encore merci à tous pour votre aide :)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Re (et salut patrice)
voyez ici (à droite)pour retrouver les codes (si vous conservez le tableau initial de transformation
https://mon-partage.fr/f/vi1xWBcL/
crdlmnt
0
valentin
 
super :) :) c'est exactement ce que je voulais
Merci à tous pour votre aide précieuse
0
Vaucluse Messages postés 26496 Date d'inscription   Statut Contributeur Dernière intervention   6 438
 
Pas de quoi
si vous avez tout ce qu'il faut, merci de passer le sujet en résolu
(menu roue dentée en haut à droite du titre du fil)
bonne route
crdlmnt
0
Patrice33740 Messages postés 8561 Date d'inscription   Statut Membre Dernière intervention   1 780
 
Re,

Codage et décodage :
https://www.cjoint.com/c/IJcvBUBPraq


0