Gencod, retransformer les caractères ean en nombre

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 .... :confused:

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( :mad:, 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 .... :eek::eek:

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 ....
 

Dranreb

XLDnaute Barbatruc
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"
 

gromimi

XLDnaute Nouveau
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:

Dranreb

XLDnaute Barbatruc
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.
 

eriiic

XLDnaute Barbatruc
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
 

gromimi

XLDnaute Nouveau
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
...
 

mutzik

XLDnaute Barbatruc
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
 

gromimi

XLDnaute Nouveau
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 ....
 

eriiic

XLDnaute Barbatruc
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
 

Dranreb

XLDnaute Barbatruc
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.
 

gromimi

XLDnaute Nouveau
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.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
312 177
Messages
2 085 972
Membres
103 073
dernier inscrit
MSCHOE16