IMPRESSION DE CODES BARRES CODE 39

Messages postés
483
Date d'inscription
mardi 10 juillet 2001
Statut
Membre
Dernière intervention
12 juillet 2006
- - Dernière réponse : 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

Afficher la suite 
cannibal20
Messages postés
1
Date d'inscription
samedi 2 octobre 2004
Statut
Membre
Dernière intervention
7 septembre 2007
-
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
-
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
-
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
-
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
-
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 !!!