Codage [Résolu]

- - Dernière réponse : Patrice33740
Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
- 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
Afficher la suite 
A voir également:

7 réponses

Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
1215
Commenter la réponse de Patrice33740
Messages postés
24566
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
14 octobre 2019
4822
0
Merci
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
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 :)
Vaucluse
Messages postés
24566
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
14 octobre 2019
4822 -
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
Commenter la réponse de Vaucluse
Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
1215
0
Merci
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


Patrice33740
Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
1215 -
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
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...)
Patrice33740
Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
1215 -
Dans ce cas il vaut mieux utiliser une formule (cf. la réponse de Vaucluse que je salue)
Commenter la réponse de Patrice33740
Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
1215
0
Merci
RE,

Un essai pour des références de 12 caractères maximum :
https://www.cjoint.com/c/IJcqdvBFIeq
Patrice33740
Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
1215 -
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);"")
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 :)
Commenter la réponse de Patrice33740
Messages postés
24566
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
14 octobre 2019
4822
0
Merci
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
super :) :) c'est exactement ce que je voulais
Merci à tous pour votre aide précieuse
Commenter la réponse de Vaucluse
Messages postés
24566
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
14 octobre 2019
4822
0
Merci
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
Commenter la réponse de Vaucluse
Messages postés
7828
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
11 octobre 2019
1215
0
Merci
Re,

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


Cordialement
Patrice

Personne ne peut détenir le savoir, c'est pour ça qu'on le partage.
Commenter la réponse de Patrice33740