Convertir numéros en codes barres

Bonjour

Toujours mes histoires de bibliothécaires : j'ai une liste de bouquins à traiter ; le n° de code à barre est indiqué pour chaque exemplaire, mais le plus simple & le plus sûr serait de pouvoir travailler avec les codes à barres.

J'ai trouvé un site que vous connaissez peut-être :

et j'ai récupéré les outils offerts, y compris la police, mais le tableau d'essai n'est pas actif. Apparemment, il faudrait activer un module Visual Basic et ça, c'est hors de mes compétences...

Je joins le modèle du Grand Zébu, si qq veut bien m'aider...

Je suis bien sûr preneur d'autres solutions...

merci d'avance.

1'969essai-code-128.zip (10.96 Ko)

Bonjour

Il me semble que tu n'a pas besoin obligatoirement de macro pour utiliser des codes Barres,

Tu dois récuperer et installer les police sur ton PC et ensuite pour les cellules ou tu à besoin de ce code barre selectionner dans le bandeau en haut la police que tu a installé ( de cette façon ça fonctionne sur mon PC avec Excel 2000 et 2003)

J'ai essayé cette solution en appliquant la police code128 à mes numéros, mais ça ne donne rien.

Par exemple : 270003112

Si je reprends le même numéro et que je le traite dans un convertisseur en ligne, la suite de chiffre est d'abord convertie ; ça donne ça : Ò; #+Í2hÓ

Suis perplexe.

bonjour

je m'excuses car je n'ai pas ouvert ton fichier parce que je me suis dispersé dans la recherche d'une solution

j'ai pondu cela pour 4 chiffres ( a titre d'essai )

4'053code-barre.zip (3.51 Ko)

j'ai extrait chaque nombre , ensuite la fonction REPEAT(

a+

tulipe_3 a écrit :

bonjour

je m'excuses car je n'ai pas ouvert ton fichier parce que je me suis dispersé dans la recherche d'une solution

j'ai pondu cela pour 4 chiffres ( a titre d'essai )

j'ai extrait chaque nombre , ensuite la fonction REPEAT(

a+

Merci pour ton intérêt mais là, je dois avouer que je ne vois pas trop où tu as voulu en venir...

bonjour

jai simplement essayé de convertir des chiffres en I , mais bien sur une police adaptée comme il t'a ete proposé c'est mieux ( laquelle ?) de plus ce que je 'tavais presenté (a la reflexion) ne traite pas les 00 ; quoique

on pourrait toujours y remedier

tu peux aussi chercher une solution a partir de l 'adaptation d'un convertisseur de chiffre en letttre

bonne journée

Dan : j'ai téléchargé ce que tu m'as conseillé, mais je désespère ! Quand je remplace l'exemple par l'un de mes numéros, j'obtiens un code barre qui veut dire "#NOM?"

Re,

Je suppose que tes macros sont activées et que tu es sur la feuille Code128 du fichier téléchargé.

Si par exemple tu mets en B7 --> 125, tu obtiens une valeur non ?

Donne moi le numéro que tu utilises et qui te donne --> "#NOM?"

A te relire

Oui, c'est la bonne feuille.

Comment savoir si les macros sont activés ?

J'utilise un n° du type : 270006440

merci et à tout de suite !

re,

Pour voir si les macros sont activées, vas dans OUTILS / MACRO / SECURITE des macros. L0 tu devrai idéalement te trouver sur "Niveau Moyen". De cette sorte, à chaque ouverture d'un fichier, il te sera demandé si tu veux les activer ou non.

Dans le cas de ton souci, ici, il te fait absolument les macros.

Amicalement

Eh ! bien, sur ce front aussi, je m'en vois...

On dirait qu'il y a un truc qui ne va pas avec la police...

codbar

Re,

Pour voir si tes macros sont activées, vas dans OUTILS / MACRO / SECURITE DES MACROS. Là tu devrais être idéalement sur Niveau MOYEN. Ce niveau te permet de choisir si tu veux utiliser les macros ou non à l'ouverture de ton fichier.

Amicalement

Oui, à l'ouverture, je confirme l'activation des macros.

Pour moi, ça ressemble plus à un problème d'affichage.

bonjour,

j'ai peut-être la solution

je te joint un fichier avec un exemple.

sans macro.

juste avec des formule de calcul.

mais avant il faut que tu ai la police EAN13

visiblement tu l'avais téléchargé.

voila bonne chance.

Je répond à ce sujet vu que l'on tombe dessus lors d'une recherche Google pour Excel code128b, mais qu'il est confus.

Pour afficher des codes barre 128b il faut donc le fichier http://grandzebu.net/informatique/codbar/essai%20code%20128.xls

et la police code128.ttf : http://grandzebu.net/informatique/codbar/code128.ttf

Une fois téléchargé, sous Windows 7, il faut double cliquer sur le fichier code128.ttf puis cliquer sur le bouton "Installer" en haut de la fenêtre qui apparait.

Relancer Excel s'il était ouvert pour qu'il recharge la police puis ouvrez le fichier "essai code 128.xls". Autorisez les macros et ça devrait être bon.

Voici la macro que contient le fichier "essai code 128.xls" au cas ou le site grandzebu.net n'est plus accessible :

Public Function Code128$(chaine$)
  'V 2.0.0
  'Parametres : une chaine
  'Parameters : a string
  'Retour : * une chaine qui, affichee avec la police CODE128.TTF, donne le code barre
  '         * une chaine vide si parametre fourni incorrect
  'Return : * a string which give the bar code when it is dispayed with CODE128.TTF font
  '         * an empty string if the supplied parameter is no good
  Dim i%, checksum&, mini%, dummy%, tableB As Boolean
  Code128$ = ""
  If Len(chaine$) > 0 Then
  'Verifier si caracteres valides
  'Check for valid characters
    For i% = 1 To Len(chaine$)
      Select Case Asc(Mid$(chaine$, i%, 1))
      Case 32 To 126, 203
      Case Else
        i% = 0
        Exit For
      End Select
    Next
    'Calculer la chaine de code en optimisant l'usage des tables B et C
    'Calculation of the code string with optimized use of tables B and C
    Code128$ = ""
    tableB = True
    If i% > 0 Then
      i% = 1 'i% devient l'index sur la chaine / i% become the string index
      Do While i% <= Len(chaine$)
        If tableB Then
          'Voir si interessant de passer en table C / See if interesting to switch to table C
          'Oui pour 4 chiffres au debut ou a la fin, sinon pour 6 chiffres / yes for 4 digits at start or end, else if 6 digits
          mini% = IIf(i% = 1 Or i% + 3 = Len(chaine$), 4, 6)
          GoSub testnum
          If mini% < 0 Then 'Choix table C / Choice of table C
            If i% = 1 Then 'Debuter sur table C / Starting with table C
              Code128$ = Chr$(210)
            Else 'Commuter sur table C / Switch to table C
              Code128$ = Code128$ & Chr$(204)
            End If
            tableB = False
          Else
            If i% = 1 Then Code128$ = Chr$(209) 'Debuter sur table B / Starting with table B
          End If
        End If
        If Not tableB Then
          'On est sur la table C, essayer de traiter 2 chiffres / We are on table C, try to process 2 digits
          mini% = 2
          GoSub testnum
          If mini% < 0 Then 'OK pour 2 chiffres, les traiter / OK for 2 digits, process it
            dummy% = Val(Mid$(chaine$, i%, 2))
            dummy% = IIf(dummy% < 95, dummy% + 32, dummy% + 105)
            Code128$ = Code128$ & Chr$(dummy%)
            i% = i% + 2
          Else 'On n'a pas 2 chiffres, repasser en table B / We haven't 2 digits, switch to table B
            Code128$ = Code128$ & Chr$(205)
            tableB = True
          End If
        End If
        If tableB Then
          'Traiter 1 caractere en table B / Process 1 digit with table B
          Code128$ = Code128$ & Mid$(chaine$, i%, 1)
          i% = i% + 1
        End If
      Loop
      'Calcul de la cle de controle / Calculation of the checksum
      For i% = 1 To Len(Code128$)
        dummy% = Asc(Mid$(Code128$, i%, 1))
        dummy% = IIf(dummy% < 127, dummy% - 32, dummy% - 105)
        If i% = 1 Then checksum& = dummy%
        checksum& = (checksum& + (i% - 1) * dummy%) Mod 103
      Next
      'Calcul du code ASCII de la cle / Calculation of the checksum ASCII code
      checksum& = IIf(checksum& < 95, checksum& + 32, checksum& + 105)
      'Ajout de la cle et du STOP / Add the checksum and the STOP
      Code128$ = Code128$ & Chr$(checksum&) & Chr$(211)
    End If
  End If
  Exit Function
testnum:
  'si les mini% caracteres a partir de i% sont numeriques, alors mini%=0
  'if the mini% characters from i% are numeric, then mini%=0
  mini% = mini% - 1
  If i% + mini% <= Len(chaine$) Then
    Do While mini% >= 0
      If Asc(Mid$(chaine$, i% + mini%, 1)) < 48 Or Asc(Mid$(chaine$, i% + mini%, 1)) > 57 Then Exit Do
      mini% = mini% - 1
    Loop
  End If
Return
End Function 
Rechercher des sujets similaires à "convertir numeros codes barres"