Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Détecter entrée lecteur code barre

3 réponses
Avatar
Thierry Euzenot
Bonjour,

Je suis en train de développer une application en VBA, sous Excel, qui doit,
lorsque un code barre est lu par un lecteur de code barre, faire une action.
(Je précise que je ne me suis pas trompé de groupe de discussion, mon
problème est bien de programmation VB ou presque, VB, VBA, c'est presque
pareil sur certains points ^_^ )

Mon problème : comment détecter si l'information de saisie numérique vient
du lecteur de code barre ou du clavier normal de l'ordinateur ? En effet
l'action suivante doit être effectuée uniquement si l'information provient
du lecteur de code barre.

Les données : Lorsque le lecteur de code barre est connecté, un nouveau
clavier est ajouté au profil matériel du panneau de config. J'ai déjà fait
une routine permettant de récupérer la désignation de ce lecteur/clavier et
de vérifier s'il est bien connecté.

Merci par avance pour votre aide.
Thierry

3 réponses

Avatar
Hotmerlino
Bonsoir,

Voila comment j'ai pratique.


il faut MSComm sur ton application.

et ensuite.......

'*******************************
'* Parametres lecture port COM *
'*******************************
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 1 ' 1 sir sur COM1 ou 2 sur COM2 et .....
MSComm1.PortOpen = True
MSComm1.SThreshold = 1


'****************************************************************
'* Capture des datas a traiter : a placer dans un timer
'****************************************************************
Text1.Text = Tampon & MSComm1.Input



Private Sub Text1_Change()
'***********************************************************
'* Remplace le [Enter = Cr] et le [Retour a la ligne = Lf] *
'***********************************************************
Text1.Text = Replace(Text1.Text, vbCr, "")
Text1.Text = Replace(Text1.Text, vbLf, "")

Text1.Text = Trim(Text1.Text)

'*****************************************************************************
'* Traiter les datas saisie par le scanner, suivant la longueur de la donnee
*
'*****************************************************************************
Select Case Len(Text1.Text)

Case 3, 1
'******************
'* N° de l'ouvier *
'******************
Call Nom_Ouvrier

Case 6
'**************************
'* Numero d'Ordre Magasin *
'**************************
Call Om

Case 8
'***************************************
'* Active l'ongle EQUIPE 1 ou EQUIPE 2 *
'***************************************
Call Equipe

Case 9
'************************************************
'* Effacer la grille et zones pour nouveau O.M. *
'************************************************
Call Nouveau_OM

Case 22
'**************************************
'* Ecriture des donnes dans la grille *
'**************************************
Call Essieux

End Select

'********************************
'* Mise a zero de la zone TEXT1 *
'********************************
Text1.Text = ""

End Sub

bonne programmation

Salva



"Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> a écrit dans le
message de news: %
Bonjour,

Je suis en train de développer une application en VBA, sous Excel, qui
doit, lorsque un code barre est lu par un lecteur de code barre, faire une
action.
(Je précise que je ne me suis pas trompé de groupe de discussion, mon
problème est bien de programmation VB ou presque, VB, VBA, c'est presque
pareil sur certains points ^_^ )

Mon problème : comment détecter si l'information de saisie numérique vient
du lecteur de code barre ou du clavier normal de l'ordinateur ? En effet
l'action suivante doit être effectuée uniquement si l'information provient
du lecteur de code barre.

Les données : Lorsque le lecteur de code barre est connecté, un nouveau
clavier est ajouté au profil matériel du panneau de config. J'ai déjà fait
une routine permettant de récupérer la désignation de ce lecteur/clavier
et de vérifier s'il est bien connecté.

Merci par avance pour votre aide.
Thierry



Avatar
Gloops
Salut,

C'est peut-être trompeur, mais pour quelqu'un qui n'a pas de lecteur, l e
lien entre cette réponse et la question posée n'est pas évident. De s
fois que j'aie à faire ça un de ces quatre, j'aimerais bien comprendr e.

Peux-tu préciser dans quelle variable tu mets l'information précisant le
périphérique d'où provient le contenu de Text1 ?

Ou bien tu veux dire que Text1 n'est pas visible, qu'on fait la saisie
clavier dans Text2, et que si l'un ou l'autre est modifié on recopie le
contenu dans Text3 ? Effectivement, dans ce cas :

If Text1 = Text3 Then
'saisie par code barre
Else
'saisie par clavier
End If

avec un cas particulier si les zones de texte sont vides.
__________________________________________
Hotmerlino a écrit, le 30/10/2007 20:29 :
Bonsoir,

Voila comment j'ai pratique.


il faut MSComm sur ton application.

et ensuite.......

'*******************************
'* Parametres lecture port COM *
'*******************************
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 1 ' 1 sir sur COM1 ou 2 sur COM2 et .....
MSComm1.PortOpen = True
MSComm1.SThreshold = 1


'****************************************************************
'* Capture des datas a traiter : a placer dans un timer
'****************************************************************
Text1.Text = Tampon & MSComm1.Input



Private Sub Text1_Change()
'***********************************************************
'* Remplace le [Enter = Cr] et le [Retour a la ligne = Lf] *
'***********************************************************
Text1.Text = Replace(Text1.Text, vbCr, "")
Text1.Text = Replace(Text1.Text, vbLf, "")

Text1.Text = Trim(Text1.Text)

'********************************************************************** *******
'* Traiter les datas saisie par le scanner, suivant la longueur de la d onnee
*
'********************************************************************** *******
Select Case Len(Text1.Text)

Case 3, 1
'******************
'* N° de l'ouvier *
'******************
Call Nom_Ouvrier

Case 6
'**************************
'* Numero d'Ordre Magasin *
'**************************
Call Om

Case 8
'***************************************
'* Active l'ongle EQUIPE 1 ou EQUIPE 2 *
'***************************************
Call Equipe

Case 9
'************************************************
'* Effacer la grille et zones pour nouveau O.M. *
'************************************************
Call Nouveau_OM

Case 22
'**************************************
'* Ecriture des donnes dans la grille *
'**************************************
Call Essieux

End Select

'********************************
'* Mise a zero de la zone TEXT1 *
'********************************
Text1.Text = ""

End Sub

bonne programmation

Salva



"Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> a écrit dans le
message de news: %
Bonjour,

Je suis en train de développer une application en VBA, sous Excel, q ui
doit, lorsque un code barre est lu par un lecteur de code barre, faire une
action.
(Je précise que je ne me suis pas trompé de groupe de discussion, mon
problème est bien de programmation VB ou presque, VB, VBA, c'est pre sque
pareil sur certains points ^_^ )

Mon problème : comment détecter si l'information de saisie numér ique vient
du lecteur de code barre ou du clavier normal de l'ordinateur ? En eff et
l'action suivante doit être effectuée uniquement si l'information provient
du lecteur de code barre.

Les données : Lorsque le lecteur de code barre est connecté, un no uveau
clavier est ajouté au profil matériel du panneau de config. J'ai d éjà fait
une routine permettant de récupérer la désignation de ce lecteur /clavier
et de vérifier s'il est bien connecté.

Merci par avance pour votre aide.
Thierry







Avatar
Thierry Euzenot
Merci beaucoup pour vos réponses, désolé pour le retard à faire suite, mais
je ne travaille dans cette entreprise qu'une fois par semaine et n'ai pas
accès à internet le reste du temps.

Problème supplémentaire que j'ai omis d'évoquer, mon lecteur de code barre
est en USB... comment paramétrer le port USB au lieu d'un port COM ?

Thierry présent pour toute la journée ^_^

"Hotmerlino" a écrit dans le message de news:

Bonsoir,

Voila comment j'ai pratique.


il faut MSComm sur ton application.

et ensuite.......

'*******************************
'* Parametres lecture port COM *
'*******************************
MSComm1.Settings = "9600,n,8,1"
MSComm1.CommPort = 1 ' 1 sir sur COM1 ou 2 sur COM2 et .....
MSComm1.PortOpen = True
MSComm1.SThreshold = 1


'****************************************************************
'* Capture des datas a traiter : a placer dans un timer
'****************************************************************
Text1.Text = Tampon & MSComm1.Input



Private Sub Text1_Change()
'***********************************************************
'* Remplace le [Enter = Cr] et le [Retour a la ligne = Lf] *
'***********************************************************
Text1.Text = Replace(Text1.Text, vbCr, "")
Text1.Text = Replace(Text1.Text, vbLf, "")

Text1.Text = Trim(Text1.Text)

'*****************************************************************************
'* Traiter les datas saisie par le scanner, suivant la longueur de la
donnee *
'*****************************************************************************
Select Case Len(Text1.Text)

Case 3, 1
'******************
'* N° de l'ouvier *
'******************
Call Nom_Ouvrier

Case 6
'**************************
'* Numero d'Ordre Magasin *
'**************************
Call Om

Case 8
'***************************************
'* Active l'ongle EQUIPE 1 ou EQUIPE 2 *
'***************************************
Call Equipe

Case 9
'************************************************
'* Effacer la grille et zones pour nouveau O.M. *
'************************************************
Call Nouveau_OM

Case 22
'**************************************
'* Ecriture des donnes dans la grille *
'**************************************
Call Essieux

End Select

'********************************
'* Mise a zero de la zone TEXT1 *
'********************************
Text1.Text = ""

End Sub

bonne programmation

Salva



"Thierry Euzenot" <thierry.euzenot*arobase*gmail.com> a écrit dans le
message de news: %
Bonjour,

Je suis en train de développer une application en VBA, sous Excel, qui
doit, lorsque un code barre est lu par un lecteur de code barre, faire
une action.
(Je précise que je ne me suis pas trompé de groupe de discussion, mon
problème est bien de programmation VB ou presque, VB, VBA, c'est presque
pareil sur certains points ^_^ )

Mon problème : comment détecter si l'information de saisie numérique
vient du lecteur de code barre ou du clavier normal de l'ordinateur ? En
effet l'action suivante doit être effectuée uniquement si l'information
provient du lecteur de code barre.

Les données : Lorsque le lecteur de code barre est connecté, un nouveau
clavier est ajouté au profil matériel du panneau de config. J'ai déjà
fait une routine permettant de récupérer la désignation de ce
lecteur/clavier et de vérifier s'il est bien connecté.

Merci par avance pour votre aide.
Thierry