Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Autres utiliser lecteur de code barre dans Userform

Chatron

XLDnaute Junior
Bonjour à tous

Il y a une dizaine d'années, avec l'aide(très importante) des participants à ce forum, j'ai pu réaliser une application Excell pour gérer une petite ( par le nombre des adhérents ) bibliothèque communale tenue par des bénévoles

Cette application fonctionne très bien depuis, mais c'est un peu compliqué avec certains bénévoles âgés qui ne maitrisent pas toujours le clavier et qui ne sont pas à l'aise avec l'informatique ( mais dans une toute petite commune il n'est pas évident de trouver des bénévoles et la commune n'a pas les moyens de payer un salarié

C'est pourquoi j'envisage de leur faciliter le travail en utilisant un lecteur de code barre pour enregistrer les livres et c'est la que s’arrêtent mes compétence en VBA
J'ai pensé comme solution possible d'inserer dans mon User une Textbox ( textbox3 douchette ) dans laquelle je positionnerai le focus pour que le lecteur de code barre y envoie le code ISBN et ça déclencherait l’enregistrement des cellules adjacentes dans les ComboBox 2,3 & 4, mais mon code ne marche pas
Je précise que l'ordi de la bobliothèque fonctionne sous XP et Office 2000 mais l'application fonctionne sous Winwows 10 et Excell 325
Voici mon code qui ne marche pas
VB:
Private Sub Textbox3_Change() 'action douchette
Dim H As Range
Dim DerCell As String
Dim H As Variant
CbB2 = ""
CbB3 = ""
CbB4 = ""
TextBox3.SetFocus
Windows("GdA.xls").Activate
      Sheets("GdA").Select
  DerCell = Range("E8").End(xlDown).Address
TextBox3.RowSource = "E9:" & DerCell
For Each H In Sheets("GdA").Range("E9:E" & Range("E65536").End(xlUp).Row)

If H.Value = Me.texbox3.Value Then Me.CbB2 = (E.Offset(0, 1).Value)
.Me.CbB3 = (c.Offset(0, 2).Value)
.Me.CbB2 = (H.Offset(0, 3).Value)

Next
End Sub
Il y a surement d'autres solutions sans utiliser de Textbox, mais je suis incompétent

Je joins mon application très très simplifiée pour que vous puissiez voir le fonctionnement ( il y a d'ailleurs surement beaucoup de lignes inutiles dans les codes !)

Je vous demande d'être très tolérant avec moi : à 83 ans quand on est un manuel (mécano) et qu'on ne connait pas un mot d'anglais, ce n'est pas évident de se familiariser avec la programmation
En tout cas merci de votre aide
 

Pièces jointes

  • GdA.xls
    435 KB · Affichages: 9
  • GdP.xls
    16.5 KB · Affichages: 4
  • GEST_essai douchette.xls
    209 KB · Affichages: 9

bouchard

XLDnaute Nouveau
Bonjour Chatron,
l'utilisation d'un textbox est la seule solution à ma connaisance.
par contre l'évènement utilisé n'est pas le bon.
il faut utiliser 'Private Sub Textbox3_AfterUpdate()' pour avoir le code IBSN complet pour la recherche qui suit.

Cdlt
 

herve62

XLDnaute Barbatruc
Supporter XLD
Bonjour à vous
Non le AfterUpdate ne marche qu'après un Return
Là il me semble qu'il faille un KeyDown ou KeyPress
Ensuite avec le test
If KeyAscii = vbCR then ( vb Carriage Return donc la touche Entrée)
tu peux continuer ton code
Mais je ne peux aller plus loin ............ j'ai pas de douchette !!!!
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…