Codage

Résolu/Fermé
valentin - 2 oct. 2019 à 11:50
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 - 2 oct. 2019 à 23:26
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 oct. 2019 à 12:42
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
2 oct. 2019 à 12:49
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
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
2 oct. 2019 à 14:53
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 oct. 2019 à 14:05
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 oct. 2019 à 14:11
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
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 oct. 2019 à 14:24
Dans ce cas il vaut mieux utiliser une formule (cf. la réponse de Vaucluse que je salue)
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 oct. 2019 à 18:04
RE,

Un essai pour des références de 12 caractères maximum :
https://www.cjoint.com/c/IJcqdvBFIeq
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
2 oct. 2019 à 18:18
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
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 lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
2 oct. 2019 à 19:14
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
super :) :) c'est exactement ce que je voulais
Merci à tous pour votre aide précieuse
0
Vaucluse Messages postés 26496 Date d'inscription lundi 23 juillet 2007 Statut Contributeur Dernière intervention 1 avril 2022 6 396
2 oct. 2019 à 19:45
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 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
Modifié le 2 oct. 2019 à 23:28
Re,

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


0