Convertisseur d'EAN 13 en code barre

464convertisseur-ean.zip (16.34 Ko)

Bonjour à toutes et à tous,

J'ai récupéré une macro qui permet de convertir de simple EAN en EAN 13 (code barre) afin que les magasins puissent doucher (avec la machine) l'EAN pour connaître leurs CA et les stocks sur le produit concerné.

Néanmoins sur ma macro, si il y a 20 EAN, je suis obligé de cliquer 20 fois sur le bouton pour générer les 20 EAN en EAN 13.

Ce que j'aimerais, c'est qu'il me les génère les 20 ou les 17 ou les 15 EAN en automatique en cliquant simplement une fois sur le bouton.

Il ne doit pas manquer grand chose sur ma macro mais la je sèche totalement.

Si quelqu’un aurait la solution s'il vous plaît ça serait super.

Je joins le fichier.

A très vite j'espère.

Merci par avance.

Bonjour,

tu devrais utiliser une cellule dédiée (A1 par exemple) pour recevoir le scan. Ta douchette doit inclure le code 13 (CR) à la fin pour valider la saisie.

Ensuite tu détectes un nouveau scan avec l'événement Worksheet_Change de la feuille:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.adress = "$A$1" Then
        controle_et_traitement ' appel d'une procédure
        [A1].select ' prépare la réception d'un nouveau scan
    End If

End Sub

eric

Merci pour votre réponse Eric,

Je suis débutant en VBA, Je l'incorpore ou dans ma macro votre code ??

Merci par avance.

romain

Tu ne l'incorpores pas, tu le copies dans le code de la feuille.

Et tu ajoutes une proc controle_et_traitement() (nom à ta convenance) où tu fais tes contrôles de validité ou autre et si c'est bon tu copie-colle le code EAN à son emplacement définitif.

Je suis désolé Eric mais je n'ai vraiment pas compris...

Ce que je désire, c'est en cliquant sur le bouton de ma Macro, que les 20 passes en code barre afin de pouvoir les biper.

Par rapport à ton code je n'ai pas compris ta réponse.

Peux-tu essayer de simplifier la pédagogie ?? :/

Merci

Romain

En fait j'avais refermé bien vite ton code non indenté et avec trop de lignes inutiles et je pensais que tu voulais recevoir des scans de douchette.

Pour balayer les cellules d'une plage :

Sub Macro5()
    Dim c As Range
    For Each c In Range([A3], [A3].End(xlToRight))
        c.Offset(-1) = ean13(c.Value)
    Next c
End Sub

mais ta fonction retourne n'importe quoi j'ai l'impression.

et :

ActiveCell.Value = ean13$ ! ****NON**** une fonction retourne une valeur, elle n'inscrit rien sur la feuille. A supprimer

Merci Eric,

Mais Vous allez dire que je suis embêtant.

J'ai collé votre macro(5). Donc ça me génère bien les 20 EAN, mais c'est toujours le même EAN.

Ce que je souhaite (si c'est possible), c'est qu'il reprenne le même EAN que la ligne du dessous car en effet les 20 seront différents à chaque fois.

Vous voyez la où je veux en venir ?

Merci par avance Eric

C'est ce qu'il fait.

Il passe les cellules en paramètre à ta fonction qui retourne n'importe quoi, je te l'avais signalé.

Remplace là par :

Public Function ean13$(chaine$)
    ean13 = chaine
End Function

et tu verras que le balayage des cellules se fait bien (attention, pas de vide, la macro s'arrete au 1er vide rencontré)

Bonjour Eric,

J'ai donc remplacé ma longue Macro par la votre (Macro 5 et Public fonction).

Ca fonctionne mais ce n'est plus du tout le même code barre que sur ma précédente macro et je ne peux pas biper les code barres avec la douchette ça ne fonctionne pas.

On y est presque, ce n'est plus que le format du code barre qu'il faut remplacer.

Pouvez-vous m'aider pour cette dernière étape s'il vous plaît ? A savoir lla macro que vous venez de me communiquer avec le même format de code barre que sur ma précédente macro.

Un grand merci par avance


C'est bon Eric j'ai réussi.

Merci beaucoup pour votre aide en tout cas.

Bonjour,

Rechercher des sujets similaires à "convertisseur ean code barre"