IMPRESSION DE CODES BARRES CODE 39

Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006 - 28 juil. 2003 à 15:17
cannibal20 Messages postés 1 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 7 septembre 2007 - 7 sept. 2007 à 17:48
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/8072-impression-de-codes-barres-code-39

cannibal20 Messages postés 1 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 7 septembre 2007
7 sept. 2007 à 17:48
POUR LES LETTRES IL SUFFIT DE MODIFIER CECI:

Public Function CodeBarreCode39(pCodeBar As String, Col As Long, Lig As Long, Optional Hauteur As Long 800, Optional largeur As Long 1500)

Dim TJA(255) As String
Dim CodeBar As String
Dim Chiffre As Long
Dim Ind As Long
Dim CodeChiffre As String ' Profil binaire des traits
Dim Lettre As String '
Dim Epaisseur1Trait As Double ' Epaisseur d'un trait
Dim Decalage As Long

CodeBar = pCodeBar

' initialisation du jeu de caractères pour code barre Code 39
' Le TJA(10) correspond au caractère de début et de fin du code barre (caractère *)
TJA(0) = "0001101000" '= 0
TJA(1) = "1001000010" '= 1
TJA(2) = "0011000010" '= 2
TJA(3) = "1011000000" '= 3
TJA(4) = "0001100010" '= 4
TJA(5) = "1001100000" '= 5
TJA(6) = "0011100000" '= 6
TJA(7) = "0001001010" '= 7
TJA(8) = "1001001000" '= 8
TJA(9) = "0011001000" '= 9
TJA(10) = "0100101000" '= CARATÈRE DÉBUT ET FIN
TJA(32) = "0110001000" '= SPACES
TJA(36) = "0101010000" '= $
TJA(37) = "0001010100" '= %
TJA(42) = "0100101000" '= * & CARATÈRE DÉBUT ET FIN
TJA(43) = "0100010100" '= +
TJA(45) = "0100001010" '= -
TJA(46) = "1100001000" '= .
TJA(47) = "0101000100" '= /
TJA(65) = "1000010010" '= A
TJA(66) = "0010010010" '= B
TJA(67) = "1010010000" '= C
TJA(68) = "0000110010" '= D
TJA(69) = "1000110000" '= E
TJA(70) = "0010110000" '= F
TJA(71) = "0000011010" '= G
TJA(72) = "1000011000" '= H
TJA(73) = "0010011000" '= I
TJA(74) = "0000111000" '= J
TJA(75) = "1000000110" '= K
TJA(76) = "0010000110" '= L
TJA(77) = "1010000100" '= M
TJA(78) = "0000100110" '= N
TJA(79) = "1000100100" '= O
TJA(80) = "0010100100" '= P
TJA(81) = "0000001110" '= Q
TJA(82) = "1000001100" '= R
TJA(83) = "0010001100" '= S
TJA(84) = "0000101100" '= T
TJA(85) = "1100000010" '= U
TJA(86) = "0110000010" '= V
TJA(87) = "1110000000" '= W
TJA(88) = "0100100010" '= X
TJA(89) = "1100100000" '= Y
TJA(90) = "0110100000" '= Z

'//==== Creation du mask représentant le code barre (série de 1, de 0)
'//"0" une bande étroite
'//"1" une bande large
'//"-" diminution de la hauteur du code barre (pour mettre le texte en dessous)
'//"+" Augmentation de la hauteur du code barre
CodeChiffre = TJA(10) + "-"

For Ind = 1 To Len(CodeBar)
If IsNumeric(Mid(CodeBar, Ind, 1)) Then
Chiffre = Val(Mid(CodeBar, Ind, 1))
Else
Chiffre = Val(Asc(UCase(Mid(CodeBar, Ind, 1))))
End If

CodeChiffre = CodeChiffre + TJA(Chiffre)
Next Ind
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
14 nov. 2005 à 20:39
Les lettres ne sont pas gérées pour ce programme ci.

Mais comme je l'ai dit plus haut, il suffit de modifier le programme pour correspondre à d'éventuelles normes pour le code 39.
zoizome Messages postés 3 Date d'inscription dimanche 13 juillet 2003 Statut Membre Dernière intervention 14 novembre 2005
14 nov. 2005 à 13:40
Et comment faire pour les lettres ?
TJA(A) = "??????????"
TJA(B) = "??????????"
...

:(
bleva Messages postés 3 Date d'inscription lundi 28 avril 2003 Statut Membre Dernière intervention 15 avril 2004
7 sept. 2005 à 22:00
Je te remercie de ta reponse mais j'ai reussi a contourner le probleme en passant par l'impression en code 128 avec la police et ca marche nickel
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
7 sept. 2005 à 21:37
Pour l'impression des lettres en code 39, je ne sais po si c'est possible. Il faudrait récupérer la doc complète sur le code 39 et voir si des codes sont disponibles pour les lettres.

Logiquement, ce serait possible vu que, comme est défini le code 39, il peut y avoir jusqu'à 84 combinaisons et donc 84 caractères : Bien assez pour coder les 10 chiffres et les 26 lettres de l'alphabet en majuscules et en minuscules.

Il suffit donc de vérifier dans la norme du code 39 si c'est bien définit.

Pour mon programme, je propose de remplacer le tableau TJA par un tableau dont l'index correspond à la valeur ASCII de la lettre à coder. A tester...

Bonne chance !!!
bleva Messages postés 3 Date d'inscription lundi 28 avril 2003 Statut Membre Dernière intervention 15 avril 2004
7 sept. 2005 à 10:13
Ton code marche nickel
Mais auriez vous une idée sur l'impression d'un code barre avec des lettres
cs_agh Messages postés 36 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 9 novembre 2011
17 avril 2005 à 14:22
Merci beaucoup .... Rien à dire ): hassan
ChristianBL Messages postés 1 Date d'inscription mercredi 10 novembre 2004 Statut Membre Dernière intervention 10 novembre 2004
10 nov. 2004 à 19:08
je souhaite utiliser le code source pour une application VBA sous ACCESS mais les fonctions d'impressions(Printer.DrawWidth = 1
Printer.Line (X + Col, Lig)-(X + BarreCourteNoire + Col, Lig + Hauteur), , BF) ne font pas parti des fonctions standards. Pouvez vous m'aider? Merci par avance.
guns_mercy Messages postés 11 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 9 mars 2007
27 oct. 2004 à 13:10
je vous remercie tt de meme
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
27 oct. 2004 à 08:47
Comme expliqué dans l'entête de la fonction, la taille du code barre est passée en paramètre. Pour mon application, j'ai utilisé une taille qui vallait 1750.

Pour la taille du code barre, il faut la déterminer par l'expérience. Ce qui est prépondérant dans la détermination de la taille du code barre, c'est la résolution de l'imprimante. Lors de mes essais sur une imprimante laser (600 dpi), j'arrivais à faire des codes barres de 2 cm de long pour 5 chiffres, mais avec l'imprimante à étiquettes (300 dpi), il fallait qu'ils fassent 4 à 5 cm pour un code barre de 5 chiffres aussi.
guns_mercy Messages postés 11 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 9 mars 2007
27 oct. 2004 à 01:56
slt,

je te remercie pour les liens j'aimerai bien savoir une autre chose, lors de l'impression du code barre est ce que la taille du code barre entre en jeux. et vous pourrai me donner la taille du code barre.
et merci d'avance
asem67 Messages postés 145 Date d'inscription mardi 3 septembre 2002 Statut Membre Dernière intervention 24 février 2008
26 oct. 2004 à 21:39
slt

je t'envoi qq lien

http://www.v-ingenierie.com/
http://www.pearl.fr/famille-1041.html
http://www.intermec.fr/product/category.asp?cat=scn

voila mais tu peut chercher sur le net ça ne manque pas
les prix sont assez elever !!!!
slt
guns_mercy Messages postés 11 Date d'inscription mercredi 6 octobre 2004 Statut Membre Dernière intervention 9 mars 2007
25 oct. 2004 à 19:28
bonjour j'aimerai bien savoir ou on peu bien se procurer un douchette et s'il y a des marque ou des refrences precises. pour moi je suis bien intersse d'avoir une comme celle de Mr asem67 est ce que quelqu'un pourrai m'aider a trouver une et merci ??
asem67 Messages postés 145 Date d'inscription mardi 3 septembre 2002 Statut Membre Dernière intervention 24 février 2008
21 oct. 2004 à 20:13
slt
pour ma part c'est egalement une douchette mais connecter au port ps2 clavier
qui envoie la lecture dans la zone ou est le curseur (ça marche partout ou on peut taper du text comme si ont avez taper au clavier
aucun logiciel d'interpretation entre
toute la config se fait par lecture de code barre de configuration fournie avec la douchette
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
21 oct. 2004 à 08:46
Pour mon projet, la douchette était connectée sur le port série du PC. La valeur lue par la douchette était alors envoyée en ascii.
cs_toftof Messages postés 4 Date d'inscription samedi 1 mars 2003 Statut Membre Dernière intervention 29 septembre 2004
20 oct. 2004 à 10:34
ça marche bien mais pour la lecture du code barre ca marche comment.Y a t il des applis pour interpreter ce que lit la douchette par exemple ?
A+
asem67 Messages postés 145 Date d'inscription mardi 3 septembre 2002 Statut Membre Dernière intervention 24 février 2008
17 oct. 2004 à 15:53
Slt
Desoler je viens 1 peut tard, cela fais plus d1 ans que mon prog GDSv3 (gestion des stocks de pieces machine ....etc) realiser en vb6 tourne avec ta source
j'imprime mes etiquette de piece avec code bar pour la sortie du stock et j'ai plus de 5 chiffre et ça fonctionne nickel (6 chiffre Ref. + 2chiffre Quantite a sortire)
impresion efectuer sur une UBI 201 (imp pro d'etiquetage )
je t'en remerci beaucoup

A+
Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006
7 déc. 2003 à 21:27
Oui g vu une source a ce sujet sur vbfrance -> A vos recherche lol (snion ya l'api je crois)
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
7 déc. 2003 à 21:25
Je n'ai pas trouvé comment choisir l'imprimante sur laquelle le code barre est imprimé. Pour l'instant, le code barre est imprimé sur l'imprimante par défaut. Mais il y a surement un moyen pour afficher l'écran de sélection des imprimantes.

Peut etre qu'il existe une source sur ce site qui permet de gérer les imprimantes....
Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006
7 déc. 2003 à 19:11
Est-ce que il y a qqun qui as deja vu / fait un ptit circuit pour lire les codes barres ?
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006
7 déc. 2003 à 18:38
Ok merci !

J'ai encore juste une question :

Il y aurait un moyen pour choisir l'imprimante sur laquelle imprimer ?
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
5 déc. 2003 à 12:07
non non ya po de pb : ca fera 10 euros et un Mars ;)

je rigole...

Si j'ai mis ce code sur ce site c'est surtout pour que d'autres gens puissent l'utiliser donc : vas y sert toi !!!
goldfingers_suisse Messages postés 29 Date d'inscription dimanche 2 novembre 2003 Statut Membre Dernière intervention 7 décembre 2006
4 déc. 2003 à 20:05
Bonjour, je voulais savoir si ça ne vous dérangeait pas si j'utilisais la source dans un projet pour l'école ?

Je dois créer une gestion de client avec une impression de code barre.
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
28 sept. 2003 à 22:47
Merci beaucoup pour le commentaire

C vrai c'est un bug
en fait po vraiment mais ce code ne permet d'imprimer que des codes barres de 5 chiffres ;)
je ne l'ai utilisée que comme ca, ce qui explique que je n'ai po vu ce bug

dans ce cas, il faut aussi modifier la boucle For à la ligne du dessus et mettre
For i = 1 To Len(CodeBar) - 1

Je vais modifier cela :)
Sibelle07 Messages postés 206 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 25 mars 2005
27 sept. 2003 à 17:17
WAW !!!
Voila ce que j'appelle un bon programme
Domage que il y a un ptit bug :
essai = Mid(CodeBar, Len(CodeBar), 1)

Je ne voit pas ou soit tu a oublier de cochez un truc dans > projet > référance mais sinon mon code barre s'imprime bien bravo a toi ;-)
9/10
sylverweb Messages postés 7 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 5 octobre 2003
31 juil. 2003 à 22:12
merci !!
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
30 juil. 2003 à 08:37
euh non je l'ai po en ean 128 ou 13 mais je pense que tu peux le trouver sur le forum : ya un code dont je me suis inspiré sur cette discussion là :
http://www.vbfrance.com/forum.aspx?Article=10681

Sinon je pense qu'il y a un bout de code dans les sources pour imprimer l'EAN128 ou 13. Je suis tombé dessus lorsque je cherchais un programme pour imprimer du code 39 :)
sylverweb Messages postés 7 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 5 octobre 2003
29 juil. 2003 à 16:16
Super ton soft tu ne l'aura pas par hasard en ean 128 et ean 13
merci d'avance
Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006
29 juil. 2003 à 10:02
voilà bonne idée !
SilverSurfeur Messages postés 21 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 26 mars 2004
29 juil. 2003 à 08:48
Disons que pour la copie d'écran ca risque d'être un peu difficile vu qu'il n'y a pas du tout de feuilles. Mais bon, si vous voulez je peux mettre une petite appli qui utilise ces méthodes. Comme ca, il y aura une copie d'écran et un zip :)
matrey Messages postés 399 Date d'inscription jeudi 31 janvier 2002 Statut Membre Dernière intervention 6 septembre 2004
28 juil. 2003 à 23:07
cool !
Pour que çà soit plus facile à se rendre compte pour les visiteurs de VBFrance, çà serait cool de mettre une copie d'écran et un zip !
Tilois Messages postés 721 Date d'inscription dimanche 10 juin 2001 Statut Membre Dernière intervention 27 mars 2011 7
28 juil. 2003 à 20:32
Ben dit donc le travail .... en plus c'est commenté .. bien !!
Cyberdevil Messages postés 483 Date d'inscription mardi 10 juillet 2001 Statut Membre Dernière intervention 12 juillet 2006
28 juil. 2003 à 15:17
deja vu mais ça a l'air pas mal !
Rejoignez-nous