Gencod, retransformer les caractères ean en nombre

  • Initiateur de la discussion Initiateur de la discussion gromimi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

gromimi

XLDnaute Nouveau
Bonjour à tous.

Je suis nouveau sur ce forum, et j'espère poster au bon endroit ....


Mon problème n'est pas un problème excel en soit .... 😕

voilà, je récupère des pages pdf, que j'ai besoin de retransformer dans un tableau excel, en vue de l'injecter dans une gestion commercial.

En fait j'ai besoin d'un gencod (ean13 ici), et d'un prix de vente ....

Le fichier que j'ai est en pdf, et quand je fait un copier/coller, je récupère le gencod transformé, c'est à dire par exemple, à la place de recevoir 0602547347930, je reçois U(602547*NORTNK( 😡, l'inverse, un ean 13, chiffres, en code barre pas de soucis ....

C'est pas ce que je convertis habituellement .... J'ai bien fait U(888750*QTLKMQ( qui donne 0888750691026 en bidouillant un peu 888750 6 9 1 0 2 6 avec des formules du genre =CODE((DROITE(GAUCHE(B4;10);1)))-75, mais que le gencod ne commence pas par 0, ça va plus ....
Il faut rechanger les formules, etc .... 😱😱

Quelqu'un connaitrait ce codage ?????

J'ai bien insisté pour avoir un format autre que pdf, texte, par exemple, mais impossible, et toutes les semaines j'ai environ une centaines de code à saisir avec prix, d'où perte de temps, et risque d'erreurs ...

Merci à vous ....
 
Re : Gencod, retransformer les caractères ean en nombre

Bonjour.
Avec cette fonction perso écrite en vba, si j'ai bien compris :
VB:
Function TransCode(ByVal Z As String) As String
Dim TSpl() As String, P As Long
TSpl = Split(Split(Z, "(")(1), "*")
For P = 1 To Len(TSpl(1))
   Mid$(TSpl(1), P, 1) = Chr$(Asc(Mid$(TSpl(1), P, 1)) - 27)
   Next P
TSpl(0) = Right$("0000000" & TSpl(0), 7)
TransCode = Join(TSpl, "")
End Function
En cellule :
Code:
=TransCode("U(888750*QTLKMQ( ")
renvoie bien "0888750691026"
 
Re : Gencod, retransformer les caractères ean en nombre

Merci à toi, c'est pas mal, mais, X(59GJH3*MOQPMN( donne 059GJH3246523 à la place de 3596973246523....

c'est plus le pb de savoir comment c'est codé avec le pdf .... la cinquantaine qui commence avec U, pas de soucis, mais ceux par X, c'est pas good ....
 
Dernière édition:
Re : Gencod, retransformer les caractères ean en nombre

Bon alors je n'ai pas compris. Et je ne suis pas près de comprendre tout seul on dirait. Je ne connais pas du tout ce codage. J'espère que vous allez pouvoir me l'expliquer.
 
Re : Gencod, retransformer les caractères ean en nombre

Bonjour,

pour les lettres ça a l'air d'être simplement (Asc(car1) - 65) Mod 10. Enfin ça se vérifie sur tes 3 exemples.
Code:
Function tradEAN(code As String) As String
    Dim i As Long, car As String, chi As Long
    tradEAN = Replace(Replace(code, "(", ""), "*", "")
    For i = 1 To Len(tradEAN)
        car = Mid(tradEAN, i, 1)
        If car >= "A" Then
            chi = (Asc(car) - 65) Mod 10
            tradEAN = Replace(tradEAN, car, chi)
        End If
    Next i
End Function
eric
 
Re : Gencod, retransformer les caractères ean en nombre

C'est pas mal aussi, mais c'est pas encore, c'est un pb de codage, dont je ne connais pas la clé ...; car ta formule me donne par exemple : pour u(0FA95E*OMTQMT( me donne 2050954429629 à la place de 5050954429629
...
 
Re : Gencod, retransformer les caractères ean en nombre

bonjour,

avant de se lancer dans des résolutions de codage, j'ai cherché sur Wikipédia 'gencod'
A mon sens, il faut d'abord savoir quel est le type de codage 'gencod' utilisé
ensuite, bonjour la prise de tête ... merci Aspro
 
Re : Gencod, retransformer les caractères ean en nombre

Le soucis c'est un peu ça, car j'ai l'impression que c'est pas un codage classique ... ça ressemble pas tout à fait à ce que je fait d'un ean13, pour avoir les "bâtons" .... je pense que le PDF y est pour beaucoup, c'est pourquoi je disais au début, c'est pas purement un pb excel ....
 
Re : Gencod, retransformer les caractères ean en nombre

Bonjour,

sur le même modèle avec les minuscules :
Code:
Function tradEAN(code As String) As String    Dim i As Long, car As String, chi As Long
    tradEAN = Replace(Replace(code, "(", ""), "*", "")
    For i = 1 To Len(tradEAN)
        car = Mid(tradEAN, i, 1)
        If car >= "A" Then
            chi = (Asc(UCase(car)) - 65 + (car >= "a") * 5) Mod 10
            tradEAN = Replace(tradEAN, car, chi)
        End If
    Next i
End Function
eric
 
Re : Gencod, retransformer les caractères ean en nombre

Bonjour
c'est un pb de codage, dont je ne connais pas la clé
Ah. Je n'espère donc plus que vous allez pouvoir me l'expliquer.
Dans ce cas il va falloir joindre un classeur avec une quinzaine d'exemples aussi divers que possibles avec leurs solutions en face. Mais je commence à avoir l'impression que le "U" avant la 1ère "(" est aussi significatif, parce que vous parlez parfois d'autres lettres.
 
Re : Gencod, retransformer les caractères ean en nombre

Test ce matin, avec une nouvelle liste, 25 inconnus dans la gestion commerciale, mais pas de soucis, en les tapant à la "main", ils sont bien inconnus !
donc la "moulinette" à première vue, fonctionne bien !!!!

Encore merci à tous.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Retour