Reconnaissances de codes barres dans liste

Bonjour à tous,

J'ai retrouvé sur le net le fichier xls d'une personne voulant gérer un stock à partir de saisies via une douchette codes à barres.

J'ai repris ce fichier pour bipper des élèves munis d'un badge avec code à barres à leur arrivée le matin pour en sortir une liste et commander en conséquence les repas de la cantine.

Pour l'instant, je saisir les cb au clavier.

Si je saisis un numéro de code barre (fictif) dans le champ de la feuille "accueil" en m'assurant bien qu'il existe dans la liste "base", et si je lance la macro par le bouton "validez la saisie", il y a bien la recherche des données de l'élève dans la feuille "base" et l'incrémentation progressive de la feuille "récap".

Mais si je valide le code par enter (ce que fera la douchette), la macro ne se lance pas. Seul à lieu l'affichage des nom et prénom en page d'accueil, sans plus, et je ne sais absolument pas où ces instructions sont codées.

Si vous pouvez m'aider ce serait très sympa.

Bien cordialement,

Ric34

Messages: 0

Inscription: il y a 22 minutes


Re bonsoir

Dsl, voici le fichier

Cdlt,

Ric34

131code-barres-ecols.zip (17.05 Ko)

Bonjour,

À tester si ça convient...

Gelinotte

Bonjour,

C'est problème de paramétrage de douchette.

Quand tu saisis un code tu termines par Entrée pour valider, elle doit faire pareil.

Donc regarde dans ses paramètres pour qu'elle ajoute en fin de saisie le caractère CR (ou LF ou CRLF, ou Retour chariot ou ce que tu as sous le coude d'approchant. Tu peux trouver aussi le code ASCII en hexa: 0D ou 0A ou en décimal : 13 ou 10)

Excuse-moi, j'avais mal lu ta demande.

Le fichier modifié, mais tu ne pourras plus contrôler le résultat du scan. Pourquoi tu ne cliques pas sur le bouton après ?

Et le code n'est pas très propre, il serait à reprendre...

eric

A tout hasard, essaie avec ces code-barres (télécharge la police -gratuite- c39hrp24dhtt.ttf) :

Bonjour,

Merci pour votre aide, ça va bien mieux.

je n'ai pas de problème de codes à barres pour l'instant vu que je saisie à la main pour débuguer le code des macros.

Je verrai ensuite avec la douchette.

Désormais l'incrémentation de la liste "récap" se fait bien dès qu'on valide un code en page d'accueil, sans passer par le bouton.

Lorsque l'on valide le code, je souhaiterais aussi que le nom et prénom s'affichent dans les champ en gras de cette même feuille et y restent jusqu'à la validation d'un nouveau code. Or il n'y apparaissent que très furtivement.

Désolé pour ma piètre connaissance en vba, mais pourriez vous me dire où est codé cet affichage des nom et prénom en page d'accueil, et comment le corriger.

Merci encore, bonne journée

Ric34

J'ai refais le code, il ne me plaisait pas.

Regarde si ça te va.

Ctrl+F11 pour aller dans VBE visualiser le code, dans le module Feuil1 et un peu dans le module ThisWorkbook.

eric

Bonjour

Merci pour cette intervention.

Le code est surement plus professionnel mais désormais je ne comprends plus les instructions et je ne saurai plus le corriger.

Comment pourrait on remettre en fonction la constitution progressive de la liste en feuille "récap"au fur et à mesure des validations successives de codes en feuille "accueil".

Merci encore pour votre aide.

Ric34

Théoriquement ça se fait automatiquement lorsque le code est validé.

As-tu essayé ? J'ai testé avant de poster

Re bonjour

Vraiment désolé, ça fonctionne effectivement.

Une fausse manip du départ m'avait laissé penser que ça ne s'incrémentait pas.

J'ai repris entre 12 et 14, et ça marche bien.

Du coup je me plonge dans le code un peu hard pour moi et progressivement,... je progresse.

Je tente en ce moment de visualiser le cumul des codes barres aussi en page d'accueil pour permettre à celui qui se servira de la douchette de voir la liste se constituer.

Un bouton sera rajouté en page 'accueil' pour faire une raz de toutes les saisies avant de repasser à une autre classe.

Vraiment merci.

A+,

Ric34

Remplace le code par celui-ci.

Ca t'évitera d'avoir les événements désactivés si tu plantes ou arrête le code pendants tes essais, c'est ce qui a dû t'arriver.

Option Explicit

Dim noEvents As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim c As Range, code As String, nom As String, prenom As String

    If noEvents Then Exit Sub
    If Target.Address <> "$C$4" Then Exit Sub
    ActiveSheet.Unprotect
    code = Target
    Set c = Sheets("BASE").Columns(1).Find(code, LookIn:=xlValues, lookat:=xlWhole)
    noEvents = True
    [C4:C7].ClearContents
    [C5] = code
    If c Is Nothing Then
        [C6] = "inconnu"
    Else
        nom = c.Offset(, 2)
        prenom = c.Offset(, 3)
        [C6] = nom
        [C7] = prenom
        Set c = Sheets("Recap").Cells(Rows.Count, 1).End(xlUp).Offset(1)
        c = nom
        c.Offset(, 1) = prenom
        c.Offset(, 2) = code
        c.Offset(, 3) = Now
    End If
    noEvents = False
    [C4].Select
    Set c = Nothing
    ActiveSheet.Protect
End Sub

Bonjour Eric,

Merci pour cette amélioration, tout est parfait.

Je déchiffre le code et lui rajoute quelques compléments.

Je connais plutôt les macros habituelle à lancer sous excel et pas celles qui gèrent les évènements.

Je me pose une dernière question sur ce type de macros.

Je voulais rajouter un compteur de saisies (nombre d'élèves) quelque part , par ex en feuille"accueil", à partir du nombre de lignes successivement remplies en feuille "récap".

Habituellement, j'aurais déclaré une variable, je l'aurais écrite à zéro quelques part et fait variable +1 à chaque écriture de données. Or là ça ne se gère pas comme ça, la variable ne bouge pas.

Aurais tu un conseil ?

Bonne journée, merci encore.

Ric34

Bonjour,

chaque code valide passe dans le Else de cette macro.

Ajoute-lui simplement [D6]=[D6]+1

Plus éventuellement un bouton pour remettre à 0 cette cellule.

eric


Bonjour,

chaque code valide passe dans le Else de cette macro.

Ajoute-lui simplement [D6]=[D6]+1

Plus éventuellement un bouton pour remettre à 0 cette cellule.

eric

Re bonsoir Eric

Tu le disais bien, c'était tout simple.

Depuis tes dernières indications, j'ai rajouté le compteur, quelques raz de liste et totaux ou autres fonctions intéressante.

Tout fonctionne à merveille.

J'ai à la fin mis la douchette (type usb). Je dois revoir sa config pour insérer un retour chariot à la fin de sa chaîne de caractères lus car elle écrit bien mais il manque le "enter" derrière. Je m'en occupe demain.

Vraiment merci, le code fonctionne à merveille.

Eric

Bonjour,

Tout d'abord, je vous remercie tous les deux d'avoir partagé ce fichier et vos connaissances.

J'ai une liste d'environ 500 invités à gérer, et c'est tout à fait ce dont j'avais besoin.

Cependant, je cherche un moyen de ne pas pouvoir scanner deux fois le même code-barre (ne pas avoir plusieurs fois la même personne dans le feuillet "Recap"). Vu mes compétences en VBA, c'est pas gagné.

Pourrais-je abuser de votre gentillesse ?

Cordialement,

Max

Bonjour,

ajout d'une case à cocher en D4.

eric

Bonjour Eric,

Merci beaucoup pour ton aide. Ça marche au poil.

Bonne journée,

Max

Rechercher des sujets similaires à "reconnaissances codes barres liste"