EAN 13

Un article de Wikipédia, l'encyclopédie libre.
Ceci est une version archivée de cette page, en date du 29 août 2016 à 08:21 et modifiée en dernier par Gzen92Bot (discuter | contributions). Elle peut contenir des erreurs, des inexactitudes ou des contenus vandalisés non présents dans la version actuelle.

Les codes EAN 13 (European Article Numbering à 13 chiffres) sont les codes à barres utilisés dans le monde entier sur l'ensemble de produits de grande consommation (On utilise parfois le code EAN 8 pour les objets de petite taille). Ils comportent 13 chiffres dont la signification varie suivant le type du produit :

  • les deux ou trois premiers correspondent au pays de provenance du produit, ou à une classe normalisée de produits ;
  • les 4 ou 5 suivants sont le numéro de membre de l’entreprise participant au système EAN ;
  • les 4 ou 5 suivants sont le numéro d’article du produit ainsi marqué et
  • le treizième est une clé de contrôle calculée en fonction des douze précédents.

La structure exacte des barres d'un code à barres EAN 13 est décrite dans l'article sur les codes à barres EAN.

Système EAN

EAN (European Article Numbering) est un système global destiné à l'identification univoque d'objets, il est géré mondialement par GS1.

Le numéro EAN identifie des articles ou des unités logistiques de façon unique.

Sous forme de codes à barres, le numéro peut être lu par un scanner.

Le numéro EAN constitue la base de contrôle du flux des marchandises.

Livres et publications

Exemple d’un ISBN nouvelle version.

Pour les livres, le code à barres EAN 13 reprend la structure de l’ISBN[1] aux tirets près, obligatoires pour les codes ISBN-13 mais non codés dans l'EAN-13.

Pour toutes les publications éditées en 2006 ou antérieures, l'EAN commence par 978, suivi du code ISBN à 9 chiffres (ISBN complet amputé de sa clé de contrôle), et terminé par la clé de contrôle EAN. Cet ISBN est aussi appelé Bookland EAN car son préfixe 978 n'est pas l'indicatif d'un pays, il a été créé pour regrouper tous les livres du monde. Ce pays virtuel est surnommé Bookland (« le pays des livres »)[2].

Depuis janvier 2007, tous les codes ISBN des nouvelles publications sont compatibles avec la normes EAN 13. Les anciens codes sont convertis en utilisant le groupe préfixe 978 (encore utilisé pour la plupart des nouvelles publications), mais certains éditeurs reçoivent des codes ISBN à 13 chiffres dans le groupe 979 (ces codes n’ont pas d’équivalent à 10 chiffres).

Pour les publications en série (périodiques tels que journaux, magazines et bulletins), les éditeurs intègrent leur numéro ISSN normalisé à 8 chiffres dans un code EAN à 13 chiffres, en préfixant le code ISSN à 7 chiffres (donc tronqué de sa clé de contrôle) par un groupe de 3 chiffres 977, suivi de deux chiffres à disposition des éditeurs et utilisés souvent comme code prix ou pour codifier les encarts et compléments attachés à la série, et terminé du chiffre clé de contrôle EAN. Contrairement aux codes ISBN à 10 chiffres, il n’existe pas à l’heure actuelle de norme permettant la conversion automatique des codes ISSN à 8 chiffres en codes EAN à 13 chiffres. Si une telle norme est adoptée, elle devra utiliser un groupe EAN différent de 977 pour éviter les collisions avec les codes EAN-13 déjà utilisés, ou réguler l’utilisation des deux derniers chiffres précédant le chiffre clé de contrôle EAN.

Calcul de la clé de contrôle EAN 13

Le principe est le même qu'une Formule de Luhn, excepté que les rangs pairs sont multipliés par trois et non par deux. Par exemple, le calcul de la clé de contrôle du code EAN 13 dont les 12 premiers chiffres sont 471-9-5120-0288-x (où x est la clé de contrôle que l’on cherche), résulte du tableau suivant[3] :

Chiffres « n » du code à barres 4 7 1 9 5 1 2 0 0 2 8 8
Pondérations « p » 1 3 1 3 1 3 1 3 1 3 1 3
Résultats « n » x « p » 4 21 1 27 5 3 2 0 0 6 8 24
  1. Pour les poids on alterne les valeurs 1 et 3.
  2. On calcule ensuite la somme des résultats.
  3. On calcule le reste de la division par 10 de la somme précédemment calculée :
    • si le reste de la division est égal à 0, alors la clé est 0,
    • sinon, on ôte à 10 le reste ainsi trouvé : Clé = 10 - Reste.

La somme vaut dans cet exemple 4+21+1+27+5+3+2+0+0+6+8+24 = 101, le reste de la division par 10 est 1 ; la clé vaut donc 10-1 = 9. Le code EAN 13 complet est 471-9-5120-0288-9

Formule Microsoft Excel ou LibreOffice Calc avec police EAN13.ttf

En utilisant la police EAN13.ttf, il est possible de créer le code barre EAN13 du code de 12 chiffres.

Le premier chiffre n'étant pas codé avec des barres, mais par le type d'élément des 6 chiffres suivant. Le 2e étant toujours de type 'A' et les suivants de type 'A' ou 'B' suivant la valeur du 1er chiffre. Ce codage est implémenté grâce à la table suivante. Elle est à placer en Feuille2.$A$3.

Attention, si besoin suivant votre version utilisée, il faudra avant de coller la formule renommer votre feuille avec ce tableau "Feuille2" pour que la formule fonctionne correctement.

Chiffre 1 chiffre 2 chiffre 3 chiffre 4 chiffre 5 chiffre 6 chiffre 7
0 A A A A A A
1 A A K A K K
2 A A K K A K
3 A A K K K A
4 A K A A K K
5 A K K A A K
6 A K K K A A
7 A K A K A K
8 A K A K K A
9 A K K A K A

La cellule en cellule A8 contient le code de 12 chiffres, la formule suivante en colonne B génère une chaine de 15 Caractères correspondant au code barre dans la police EAN13.ttf

Exemple : le code local « 040123456789 » est traduit en « 0EABCDE*fghijd+ ». La police EAN13.ttf contenant les délimitateurs, et les symboles 0 à 9 dans les formats A, B et C. En sélectionnant la police EAN13.ttf pour la chaîne « 0EABCDE*fghijd+ », on obtient graphiquement le code barre.

=STXT($A8;1;1)& CAR(CNUM(STXT($A8;2;1))+CODE(RECHERCHEV($A8;Feuille2!$A$4:$G$13;2))) & CAR(CNUM(STXT($A8;3;1))+CODE(RECHERCHEV($A8;Feuille2!$A$4:$G$13;3))) & CAR(CNUM(STXT($A8;4;1))+CODE(RECHERCHEV($A8;Feuille2!$A$4:$G$13;4))) & CAR(CNUM(STXT($A8;5;1))+CODE(RECHERCHEV($A8;Feuille2!$A$4:$G$13;5))) & CAR(CNUM(STXT($A8;6;1))+CODE(RECHERCHEV($A8;Feuille2!$A$4:$G$13;6))) & CAR(CNUM(STXT($A8;7;1))+CODE(RECHERCHEV($A8;Feuille2!$A$4:$G$13;7))) & "*" & CAR(CNUM(STXT($A8;8;1))+CODE("a")) & CAR(CNUM(STXT($A8;9;1))+CODE("a")) & CAR(CNUM(STXT($A8;10;1))+CODE("a")) & CAR(CNUM(STXT($A8;11;1))+CODE("a")) & CAR(CNUM(STXT($A8;12;1))+CODE("a")) & CAR(CODE( "a")+  MOD(300-((STXT($A8;1;1)+STXT($A8;3;1)+STXT($A8;5;1)+STXT($A8;7;1)+STXT($A8;9;1)+STXT($A8;11;1))+3*(STXT($A8;2;1)+STXT($A8;4;1)+STXT($A8;6;1)+STXT($A8;8;1)+STXT($A8;10;1)+STXT($A8;12;1)));10)) & "+"

Comme cette version ci-dessus ne marchait pas pour moi, voici une autre qui s'inspire du texte précédent, en qui reprend strictement les tables de la norme

Étape 1 :

Sous Excel, nous allons créer et nommer deux tables, que nous allons mettre dans un onglet "Tables". Nous reprendrons le nom de ces deux tables dans la formule

Voici la table nommée "Chiffre"

Chiffre chiffre 2 chiffre 3 chiffre 4 chiffre 5 chiffre 6 chiffre 7
0 A A A A A A
1 A A B A B B
2 A A B B A B
3 A A B B B A
4 A B A A B B
5 A B B A A B
6 A B B B A A
7 A B A B A B
8 A B A B B A
9 A B B A B A

Voici la table nommée "Lettre"

Lettre Table A Table B Table C Table D Table E
0 A K a 0 k
1 B L b 1 l
2 C M c 2 m
3 D N d 3 n
4 E O e 4 o
5 F P f 5 p
6 G Q g 6 q
7 H R h 7 r
8 I S i 8 s
9 J T j 9 t

Étape 2 :

Dans un onglet "Codes", à partir d'une série de 12 chiffres, nous allons générer la chaine de 13 caractères qui, en utilisant EAN13.ttf se transforme en code barre EAN13

Imaginons que le code de 12 chiffres se trouve en $A2, alors la formule est:

=STXT(Code!$A2;1;1)&RECHERCHEV(CNUM(STXT(Code!$A2;2;1));Lettre;CODE(RECHERCHEV(CNUM(STXT(Code!$A2;1;1));Chiffre;2;FAUX))-63;FAUX)&RECHERCHEV(CNUM(STXT(Code!$A2;3;1));Lettre;CODE(RECHERCHEV(CNUM(STXT(Code!$A2;1;1));Chiffre;3;FAUX))-63;FAUX)&RECHERCHEV(CNUM(STXT(Code!$A2;4;1));Lettre;CODE(RECHERCHEV(CNUM(STXT(Code!$A2;1;1));Chiffre;4;FAUX))-63;FAUX)&RECHERCHEV(CNUM(STXT(Code!$A2;5;1));Lettre;CODE(RECHERCHEV(CNUM(STXT(Code!$A2;1;1));Chiffre;5;FAUX))-63;FAUX)&RECHERCHEV(CNUM(STXT(Code!$A2;6;1));Lettre;CODE(RECHERCHEV(CNUM(STXT(Code!$A2;1;1));Chiffre;6;FAUX))-63;FAUX)&RECHERCHEV(CNUM(STXT(Code!$A2;7;1));Lettre;CODE(RECHERCHEV(CNUM(STXT(Code!$A2;1;1));Chiffre;7;FAUX))-63;FAUX)&"*"& CAR(CNUM(STXT(Code!$A2;8;1))+CODE("a"))&CAR(CNUM(STXT(Code!$A2;9;1))+CODE("a")) & CAR(CNUM(STXT(Code!$A2;10;1))+CODE("a")) & CAR(CNUM(STXT(Code!$A2;11;1))+CODE("a"))&CAR(CNUM(STXT(Code!$A2;12;1))+CODE("a")) & CAR(CODE( "a")+ MOD(300-((STXT(Code!$A2;1;1)+STXT(Code!$A2;3;1)+STXT(Code!$A2;5;1)+STXT(Code!$A2;7;1)+STXT(Code!$A2;9;1)+STXT(Code!$A2;11;1))+3*(STXT(Code!$A2;2;1)+STXT(Code!$A2;4;1)+STXT(Code!$A2;6;1)+STXT(Code!$A2;8;1)+STXT(Code!$A2;10;1)+STXT(Code!$A2;12;1)));10))&"+"

350211000426 donnera 3FAMLLA*aaecga+ qui, en appliquant la police EAN13.ttf donnera le code barre recherché

Notes et références

Voir aussi

Articles connexes

Liens externes