IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème avec ean 13


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Logisticien
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Logisticien

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut Problème avec ean 13
    Bonjour à tous,

    Je me permets de venir poster car j'ai un petit soucis depuis hier. Pour un nouveau client que l'on va entrer dans ma boite, nous allons devoir créer des codes barre en ean13. En ce que me concerne, pas de pb pour créer des code bare ean 128 ou code 39 mais en EAN13..... j'y arrive pas.
    Je joint un exemple avec cote à cote les 3 code barre, vous verrez dans VBA trois modules qui correspondent au 3 fonctions s'y rapportant, celle de l'ean13 me retourne la valeur #REF!.
    Les formules sont des copier/coller , pour l'ean13 j'ai essaye avec des formules provenant de différentes sources, j'ai tenté plusieurs d'enregistrer mon doc sous plusieurs format, mais rien n'y fait.
    Je précise aussi que ma valeur de base pour l'ean13 possède 12 chiffres.
    Par avance merci à ceux qui ont pris le temps de lire et répondre à mon sujet.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Frédéric01 Voir le message
    Je précise aussi que ma valeur de base pour l'ean13 possède 12 chiffres.
    l'EAN13, par définition, a toujours 13 chiffres.
    Sinon, c'est de l'EAN12, ce qui, à ma connaissance, n'est pas normalisé.

    Je joint un exemple
    Beaucoup de participants à ce forum n'ouvrent pas les pièces jointes.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    en fait tu peux Télécharger sur internet une police de caractère EAN13, EAN128 etc...

  4. #4
    Membre à l'essai
    Homme Profil pro
    Logisticien
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Logisticien

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut
    Merci pour vos réponse:

    @Menhir, L'ean13 c'est 12chiffre + une clé (un 13ième chiffre) généré par la formule. Tu balances donc une série de 12 chiffres la formule, elle t'en ressort 13.

    @ dysorthographie, si tu me parle de police d'écriture, j'ai les ai déjà installer dans windows/front. Mon soucis est la valeur qui m'est retourné par la formule ean13 #REF! , pas la police d'écriture.

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Frédéric01 Voir le message
    Mon soucis est la valeur qui m'est retourné par la formule ean13 #REF! , pas la police d'écriture.
    Tant que tu ne montreras pas le contenu de cette formule, il sera difficile de dire ce qui ne va pas dedans.

  6. #6
    Invité
    Invité(e)
    Par défaut
    je ne vois pas le rapport entre ean13 et #REF! EAN13 est une police comme Arial!

    Nom : Sans titre.png
Affichages : 3172
Taille : 14,1 Ko

  7. #7
    Membre à l'essai
    Homme Profil pro
    Logisticien
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Logisticien

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut
    @dysorthographie: Prenons une suite de 12 chiffres 123456789012, passons la dans la moulinette du code EAN13 ce qui donne: 1CDOFQR*ijabci+
    Ensuite effectivement il suffit d'utiliser la police EAN13.TTF pour avoir un code barre à 13 chiffres , un code barre avec en dessous la suite de chiffre 1234567890128
    Le dernier chiffre ''8'' étant la clé générée par le code. Mon problème se passe au niveau de la moulinette qui me revoit la valeur #REF! .

  8. #8
    Membre à l'essai
    Homme Profil pro
    Logisticien
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Logisticien

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut
    Voici la formule utilisé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    Public Function ean13$(chaine$)
      'Paramètres : une chaine de 12 chiffres
      'Parameters : a 12 digits length string
      'Retour : * une chaine qui, affichée avec la police EAN13.TTF, donne le code barre
      '         * une chaine vide si paramètre fourni incorrect
      'Return : * a string which give the bar code when it is dispayed with EAN13.TTF font
      '         * an empty string if the supplied parameter is no good
      Dim i%, checksum%, first%, CodeBarre$, tableA As Boolean
      ean13$ = ""
      'Vérifier qu'il y a 12 caractères
      'Check for 12 characters
      If Len(chaine$) = 12 Then
        'Et que ce sont bien des chiffres
        'And they are really digits
        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
          'Calcul de la clé de contrôle
          'Calculation of the checksum
          For i% = 12 To 1 Step -2
            checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
          Next
          checksum% = checksum% * 3
          For i% = 11 To 1 Step -2
            checksum% = checksum% + Val(Mid$(chaine$, i%, 1))
          Next
          chaine$ = chaine$ & (10 - checksum% Mod 10) Mod 10
          'Le premier chiffre est pris tel quel, le deuxième vient de la table A
          'The first digit is taken just as it is, the second one come from 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 / Add middle separator
          For i% = 8 To 13
            CodeBarre$ = CodeBarre$ & Chr$(97 + Val(Mid$(chaine$, i%, 1)))
          Next
          CodeBarre$ = CodeBarre$ & "+"   'Ajout de la marque de fin / Add end mark
          ean13$ = CodeBarre$
        End If
      End If
    End Function

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Est-ce que la cellule de tes données sources est au format Texte ?

  10. #10
    Membre à l'essai
    Homme Profil pro
    Logisticien
    Inscrit en
    Mars 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Logisticien

    Informations forums :
    Inscription : Mars 2018
    Messages : 5
    Par défaut
    Pour info j'ai récupéré cette formule dans un module vba d'un document où cette formule fonctionne.....
    Je suis donc obligé, si je veux utiliser cette formule dans un autre fichier, d'ouvrir le document où cette formule marche ,puis à coté un nouveau document et ensuite j'utilise la formule du premier doc sur le 2nd ce qui est possible via le Virtual Basic lorsque 2 fichier sont ouvert en même temps.....bref du bricolage.

    @Menhir: Elle est au format standard

  11. #11
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, voir ici

    P.-S. : Il est souhaitable de baliser son code
    Images attachées Images attachées  

  12. #12
    Invité
    Invité(e)
    Par défaut
    je ne vois pas l’intérêt de gérer EAN13 par macro alors qu'il existe une police de cratère!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. VC++ Direct3D8, problème avec LPD3DXFONT et LPD3DTEXTURE8
    Par Magus (Dave) dans le forum DirectX
    Réponses: 3
    Dernier message: 03/08/2002, 12h10
  2. Problème avec [b]struct[/b]
    Par Bouziane Abderraouf dans le forum CORBA
    Réponses: 2
    Dernier message: 17/07/2002, 11h25
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 19h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 17h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo