Codage [Résolu]

Signaler
-
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
-
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

Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
Messages postés
25310
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
23 septembre 2020
5 486
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 :)
Messages postés
25310
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
23 septembre 2020
5 486
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
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
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


Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
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...)
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
Dans ce cas il vaut mieux utiliser une formule (cf. la réponse de Vaucluse que je salue)
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
RE,

Un essai pour des références de 12 caractères maximum :
https://www.cjoint.com/c/IJcqdvBFIeq
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
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 :)
Messages postés
25310
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
23 septembre 2020
5 486
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
Messages postés
25310
Date d'inscription
lundi 23 juillet 2007
Statut
Contributeur
Dernière intervention
23 septembre 2020
5 486
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
Messages postés
8186
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
20 septembre 2020
1 471
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.