CODE BARRE EAN13

cs_sephiro Messages postés 101 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 18 février 2008 - 8 mars 2004 à 14:23
cs_gorrion Messages postés 1 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 21 février 2008 - 21 févr. 2008 à 10:04
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/21012-code-barre-ean13

cs_gorrion Messages postés 1 Date d'inscription jeudi 21 février 2008 Statut Membre Dernière intervention 21 février 2008
21 févr. 2008 à 10:04
Bonjour,

merci pour cette fonte libre ean13 que nous utilisons depuis 2 ans dans le cadre d'une activité de libraire !
Juste une remarque: nous n'avons jamais réussi à la faire fonctionner avec Firefox sous XP, si quelqu'un connaît la solution...
grandzebu Messages postés 27 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 23 décembre 2017
22 janv. 2008 à 19:50
Y'a pas de ieframe.dll !!!!
En lisant un code barre on obtient le numéro qui est en dessous, ni plus ni moins ...
GZ
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
21 janv. 2008 à 22:53
ça marche merci, mais lors du chargement du projet, le fichier DLL est manquant "ieframe.dll"

Merci encore une fois!
Encors une question bête :
en lisant le code barre, qu'est cequ'on va tirer comme info de ce code barre?
grandzebu Messages postés 27 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 23 décembre 2017
19 janv. 2008 à 22:58
As-tu bien chargé la police ean13.ttf ? Bien placée dans le répertoire windows\fonts ? Et rebooté l'ordi après ?
Sinon donnes moi plus de détails sur grandzebu( mettre ici un @ )hotmail.fr
GZ
basamir Messages postés 335 Date d'inscription vendredi 21 octobre 2005 Statut Membre Dernière intervention 8 mars 2008
19 janv. 2008 à 17:03
Bonjour,

j'ai testé ton prog mais au lieu d'avoir des codes barres, je n'obtiens que des trucs bizzare style message, têtes...etc?
cs_UNi Messages postés 35 Date d'inscription vendredi 15 février 2002 Statut Membre Dernière intervention 27 avril 2009
7 déc. 2007 à 15:31
Trés bon, enfin une typo EAN13 free ;)
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
25 mars 2004 à 10:21
->Stephane
Voilà ça sert à tout ça, plus plein d'autres choses ... en fait mon 'soft' excel (macro !) avait été développé pour une société de grande consommation ... donc tu t'en sert tous les jours ... ou du moins à chaque fois que tu achètes quelques choses(vêtement ou uatres ... jeux !) ... donc y a quand même pas mal de monde ...@++
grandzebu Messages postés 27 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 23 décembre 2017
25 mars 2004 à 00:09
Evidemment ça ne sert qu'aux professionnels; je reçois des dizaines de mail pour me signaler les applications qui en sont faites, en vrac : code 128 pour les nouvelles feuilles de maladie émises par certains pro. de la santé, ean13 avec extension pour un éditeur de presse, ean13 sur un service web réalisé par une société norvégienne, ean128 pour des étiquettes dans une société de messagerie, étiquetage divers pour différents magasins, étiquetage du matériel par l'économe d'un CHR, etc ...
GZ
grandzebu Messages postés 27 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 23 décembre 2017
25 mars 2004 à 00:09
Evidemment ça ne sert qu'aux professionnels; je reçois des dizaines de mail pour me signaler les applications qui en sont faites, en vrac : code 128 pour les nouvelles feuilles de maladie émises par certains pro. de la santé, ean13 avec extension pour un éditeur de presse, ean13 sur un service web réalisé par une société norvégienne, ean128 pour des étiquettes dans une société de messagerie, étiquetage divers pour différents magasins, étiquetage du matériel par l'économe d'un CHR, etc ...
GZ
cs_neodante Messages postés 2835 Date d'inscription lundi 11 août 2003 Statut Modérateur Dernière intervention 16 décembre 2006 11
23 mars 2004 à 22:05
Je suis l'auteur d'un prog de code barre également (EAN13) et de nombreux professionnels m'ont envoyer des mails pour me féliciter et pour dire que ça leur changeait leur méthode de travail en leur divisant le travail par au moins 2 ... suffit d'un scanner et ensuite hop tout ton matos est répertorié en passant un rayon tout rouge qui fait mal aux yeux si on regarde direct la lumière !!! Donc ça sert mais pas à tout le monde ... oui bon en plus je fournissais une macro pour Excel ce qui intéressait surtout les gens beaucoup plus que le prg en VB qui c'est vrai se trouve très limité sauf si on veut réutiliser les sources ...
Sinon code 128 c'est pas mal aussi ... (message à l'auteur de ce prog !)
@+ everybody
cs_Stephane Messages postés 550 Date d'inscription vendredi 5 janvier 2001 Statut Membre Dernière intervention 23 septembre 2006
9 mars 2004 à 22:13
j'arriev en retard ou quoi ?
lol je voi plein de source sur les codes barre, mais a quoi ca sert ?
(ne me dite pas ce que c'est je le sais lol, mais dans quel but c'est :p)

a+
cs_sephiro Messages postés 101 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 18 février 2008
9 mars 2004 à 11:58
Voici un code permettant de calculer la clef et de générer la conversion des 13 digites d'un EAN 13 en binaire, a toi ensuite de transformer les 1 en barre et les 0 en espace vers ton ecran ou imprimante.

' ----- Calcul Clef ( le 13eme code )
Public Function ClefEAN(Code As String) As Integer
Dim TabCode(13) As String
Dim Ope1 As Integer
Dim Ope2 As Integer
Dim Ope3 As Integer
Dim Ope4 As Integer

TabCode(1) = Mid(Code, 1, 1)
TabCode(2) = Mid(Code, 2, 1)
TabCode(3) = Mid(Code, 3, 1)
TabCode(4) = Mid(Code, 4, 1)
TabCode(5) = Mid(Code, 5, 1)
TabCode(6) = Mid(Code, 6, 1)
TabCode(7) = Mid(Code, 7, 1)
TabCode(8) = Mid(Code, 8, 1)
TabCode(9) = Mid(Code, 9, 1)
TabCode(10) = Mid(Code, 10, 1)
TabCode(11) = Mid(Code, 11, 1)
TabCode(12) = Mid(Code, 12, 1)


Ope1 = CInt(TabCode(1)) + CInt(TabCode(3)) + CInt(TabCode(5))
Ope1 = Ope1 + CInt(TabCode(7)) + CInt(TabCode(9)) + CInt(TabCode(11))

Ope2 = CInt(TabCode(2)) + CInt(TabCode(4)) + CInt(TabCode(6))
Ope2 = Ope2 + CInt(TabCode(8)) + CInt(TabCode(10)) + CInt(TabCode(12))

Ope2 = Ope2 * 3

Ope3 = Ope2 + Ope1
Ope4 = CInt(Right(CStr(Ope3), 1)) ' Recupeaire les unitées.
If Ope4 = 0 Then
ClefEAN = 0
Else
ClefEAN = 10 - Ope4
End If
End Function


' ----- Conversion du code barres de 13 digites vers un code Binaire
'*
'----- Function : EAN2Bin
'
'----- Objective : Convertir le code en 0 et 1
'
'
Public Function EAN2Bin(ByVal strEANCode As String) As String

Dim K As Integer
Dim strAux As String
Dim strExit As String
Dim strCode As String

strEANCode = Trim(strEANCode)
strAux = strEANCode


If (Len(strAux) <> 13) And (Len(strAux) <> 8) Then
'
'----- Code ean8 ou 13
'
MsgBox "La taille du code n'est pas correcte: & straux", vbCritical, "Warning"
EAN2Bin = ""
Exit Function
End If

'
'----- Est un code numerique
'
For K = 0 To Len(strEANCode) - 1
Select Case (Mid(strAux, K + 1, 1))
Case Is < "0", Is > "9"
'
'----- Code invalide
'
MsgBox "Le code doit etre numerique: & straux", vbCritical, "EAN INVALIDE"
EAN2Bin = ""
Exit Function
End Select
Next

'
'----- C'est un EAN 13
'
If (Len(strAux) = 13) Then
'
'
'----- CnnnnnnnnnnnK
'
' Where : C - Code pays
' n - Data
' K - Clef de controle
'
'----- Si le code EAN Commence par 0, il devient un code UPC(12 digits)

'
'----- Coupe le 1er digite
'
strAux = Mid(strAux, 2)

'
'----- Recherche le code Pays par rapport au 1er digite
'----- Ce code sera utiliser pour coder les Datas
'
Select Case CInt(Left(strEANCode, 1))
Case 0
strCode = "000000"
Case 1
strCode = "001011"
Case 2
strCode = "001101"
Case 3
strCode = "001110"
Case 4
strCode = "010011"
Case 5
strCode = "011001"
Case 6
strCode = "011100"
Case 7
strCode = "010101"
Case 8
strCode = "010110"
Case 9
strCode = "011010"
End Select
Else
strCode = "0000"
End If

'
'----- Le code EAN commence par un code de départ
'

'----- Code de debut Position 0 sur 6
strExit = "000101"

'
'----- 1er partie du code Digite 1 vers 7 (le code pays étant le digite 0
'
For K = 1 To Len(strAux) \ 2
Select Case CInt(Mid(strAux, K, 1))
Case 0

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0001101"
Else
strExit = strExit & "0100111"
End If

Case 1

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0011001"
Else
strExit = strExit & "0110011"
End If

Case 2

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0010011"
Else
strExit = strExit & "0011011"
End If

Case 3

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0111101"
Else
strExit = strExit & "0100001"
End If

Case 4

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0100011"
Else
strExit = strExit & "0011101"
End If

Case 5

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0110001"
Else
strExit = strExit & "0111001"
End If

Case 6

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0101111"
Else
strExit = strExit & "0000101"
End If

Case 7

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0111011"
Else
strExit = strExit & "0010001"
End If

Case 8

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0110111"
Else
strExit = strExit & "0001001"
End If

Case 9

If Mid(strCode, K, 1) = "0" Then
strExit = strExit & "0001011"
Else
strExit = strExit & "0010111"
End If

End Select
Next K

'
'----- Code de séparation
' Position 48 sur 5

strExit = strExit & "01010"

'
'----- Seconde partie du code
' Pas d'utilisation du code Pays
'

For K = Len(strAux) \ 2 + 1 To Len(strAux)

Select Case CInt(Mid(strAux, K, 1))
Case 0
strExit = strExit & "1110010"
Case 1
strExit = strExit & "1100110"
Case 2
strExit = strExit & "1101100"
Case 3
strExit = strExit & "1000010"
Case 4
strExit = strExit & "1011100"
Case 5
strExit = strExit & "1001110"
Case 6
strExit = strExit & "1010000"
Case 7
strExit = strExit & "1000100"
Case 8
strExit = strExit & "1001000"
Case 9
strExit = strExit & "1110100"
End Select
Next K

'
'----- Le code fini par un code de fin
' Position 95 sur 6

strExit = strExit & "101000"

EAN2Bin = strExit

End Function
grandzebu Messages postés 27 Date d'inscription vendredi 22 août 2003 Statut Membre Dernière intervention 23 décembre 2017
8 mars 2004 à 23:06
Dix sources comme celui la ? T'as mal regardé je crois. Nulle part il n'y a une police EAN13 gratos, nulle part il n'y a le codage des "add-on" à 2 ou 5 chiffres.
cs_sephiro Messages postés 101 Date d'inscription dimanche 1 avril 2001 Statut Membre Dernière intervention 18 février 2008
8 mars 2004 à 14:23
Il y a dix sources comme celui la sur le site,
utiliser une police code barres sur Word ou Excel je veux bien le comprendre mais sous VB il y a des methodes plus sympa, comme généré le code binaire de tes datas et remplacer les 1 par une barres et les 0 par des espaces.

Sephiro
Rejoignez-nous