Code-barres sous Excel

preonde Messages postés 4 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 - 24 avril 2009 à 08:54
preonde Messages postés 4 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 - 7 mai 2009 à 10:06
Bonjour !
Je cherche à éditer un tarif sous Excel avec le code-barre des articles, de façon à pouvoir les biper directement sur ce tarif.
Le code EAN13 est défini dans mon programme avec sa clef calculée.
La police Ean13 ne permet pas d'éditer directement un code-barre lisible par la douchette, ça serait trop simple ! Il manque probablement les caractères de début, milieu et fin. Quels sont ces caractères ? Faut-il également traduire les chiffres en autres caractères interprétés par la police Ean13 ?
Faut-il définir un à un chacune des barres, étroites ou larges ou les espaces pour la totalité du code-barre à éditer, comme indiqué dans Wikipedia ? Si oui, j'imagine que plus d'un code a été déjà écrit dans ce but.
J'ai trouvé "ModbarCode" dans le forum, mais je ne vois pas comment l'intégrer pour que le code-barre se mette dans la cellule Excel.
Merci de me guider en m'orientant vers la solution la plus simple, avec la police qui va bien.
A voir également:

5 réponses

preonde Messages postés 4 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 1
24 avril 2009 à 16:38
Merci bien pour cette version Excel.
Un point encore : comme il faut que je crée une image code-barre pour chaque article, soit 10 à 15 par page A4, positionnée correctement en face de la ligne.
N'est-il pas gênant de créer autant de controles dans une feuille ?
Ne peut-on pas utiliser un type d'objet plus "léger" (simple cadre ou image bmp ou autre) ou au contraire, les contrôles sont-ils ce qu'il y a de plus "léger" ?
N'y a-t-il pas un moyen pour inscrire directement un code-barre dans une cellule sans passer par la création d'une image ?
Merci
1
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 10:22
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
24 avril 2009 à 16:45
le code barre est une image.

libre a toi de l'intégrer comme tu le souhaites dans ta feuille.

le code génère un objet de type StdPicture qui est associé au controle Image
mais tu peux très bien faire un appel à SavePicture pour en générer un fichier BMP que tu pourras insérer par le moyen de ton choix dans la feuille excel.

coté mémoire, te tracasses pas, 10, même 15 images ne vont pas faire tomber ton poste ^^

tu as également la possibilité de modifier la chose pour ne générer qu'une image, avec n code a barres correctement placés...

bref, c'est ouvert^^
0
preonde Messages postés 4 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 1
24 avril 2009 à 16:59
Merci de me rassurer.
C'est 10 ou 15 images par page et il faudra environ 50 pages je pense pour chaque tarif. Donc j'étais un peu inquiet. Et comme je ne connais pas le poids des différents objets ...
Merci encore pour ton aide précieuse !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
preonde Messages postés 4 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 7 mai 2009 1
7 mai 2009 à 10:06
Voici la réponse à MA question, après différentes recherches, à l'intention de tous les utilisateurs du forum.
Cette solution est beaucoup plus simple que celle de la création d'une image proposée par Renfield et qui est peu lisible.

Il suffit de définir Cells(i,j) = EAN13(code) où 'code' est la chaîne des 12 premiers caractères(chiffres uniquement) du code que l'on veut éditer, et d'appliquer la police ean13.ttf sur cette cellule avec la taille que l'on souhaite, pour voir affiché un code barres lisible à la douchette.
Voir toutes les explications nécessaires pour comprendre ce code sur wikipedia.com ou gomaro.ch.
Bon travail et ne dites pas merci !

Function EAN13$(chaine$)
Dim i%, first%, CodeBarre$, tableA As Boolean, clé As Byte
'V 1.1.1
'chaine : une chaine de 12 chiffres
'Retour : une chaine qui, affichée avec la police EAN13.TTF, donne le code barre ou une chaine vide si la chaine fournie est incorrecte
EAN13 = ""
If Len(chaine) = 12 Then
'Et que ce sont bien des chiffres
For i = 1 To 12
If Asc(Mid(chaine, i, 1)) < 48 Or Asc(Mid(chaine, i, 1)) > 57 Then
i = 0
Exit For
End If
Next
If i = 13 Then
clé = Clef(chaine)
chaine = chaine & clé
'Le premier chiffre est pris tel quel, le deuxième vient de la table A
CodeBarre = Left(chaine, 1) & Chr(65 + Val(Mid(chaine, 2, 1)))
first = Val(Left(chaine, 1))
For i = 3 To 7
tableA = False
Select Case i
Case 3
Select Case first
Case 0 To 3
tableA = True
End Select
Case 4
Select Case first
Case 0, 4, 7, 8
tableA = True
End Select
Case 5
Select Case first
Case 0, 1, 4, 5, 9
tableA = True
End Select
Case 6
Select Case first
Case 0, 2, 5, 6, 7
tableA = True
End Select
Case 7
Select Case first
Case 0, 3, 6, 8, 9
tableA = True
End Select
End Select
If tableA Then
CodeBarre = CodeBarre & Chr(65 + Val(Mid(chaine, i, 1)))
Else
CodeBarre = CodeBarre & Chr(75 + Val(Mid(chaine, i, 1)))
End If
Next
CodeBarre = CodeBarre & "*" 'Ajout séparateur central
For i = 8 To 13
CodeBarre = CodeBarre & Chr(97 + Val(Mid(chaine, i, 1)))
Next
CodeBarre = CodeBarre & "+" 'Ajout de la marque de fin
EAN13 = CodeBarre
End If
End If
End Function

Function Clef(EAN13$) As Byte
Dim k%, i%, total%
'Calcul de la clé de contrôle
EAN13 = Left(Trim(EAN13), 12)
k = 3 'facteur'
For i = Len(EAN13) To 1 Step -1
total = total + Mid(EAN13, i, 1) * k
k = 4 - k
Next i
Clef = CStr(10 - IIf(total Mod 10 <> 0, total Mod 10, 10))
End Function
0
Rejoignez-nous