Autres gestion bibliothèque avec lecteur code barre

Chatron

XLDnaute Junior
Bonjour à tous
Nous gérons (depuis une dizaine d'années) une Bibliothèque associative avec une application que j'avais réalisé avec votre aide
Nous aimerions pouvoir nous servir d'un lecteur de code barre pour aller plus vite
J'ai ajouté une TextBox dans mon UserForm de saisie mais je bute sur sa programmation
je ne sais pas comment programmer que la recherche "For Each Next" ne démarre que lorsque on clique sur la touche "Entrée" et comment mettre en arret la procédure de recherche par auteur (je veux la conserver pour les livres qui ne sont pas enregistrés avec le code barre)*
Voici mon code
VB:
Private Sub TextBox3_Change() 'action douchette
Dim Cell As Range
Dim DerCell As String
Dim H As Variant
ComboBox2 = ""
ComboBox3 = ""
CbB4 = ""
'H = TextBox3
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.TextBox3.Value Then Me.ComboBox2 = (H.Offset(0, 1).Value)
.Me.ComboBox3 = (H.Offset(0, 2).Value)
.Me.CbB4 = (H.Offset(0, 3).Value)

Next
End Sub

Mon application fonctionne sous Excell 2000 et XP mais je l'ai essaye sur les dernières version d'Excell et ça fonctionne

Merci de votre aide
 

Pièces jointes

  • GdA.xls
    447 KB · Affichages: 7
  • GdP.xls
    16 KB · Affichages: 4
  • GEST_essai douchette.xls
    210.5 KB · Affichages: 9
Solution
Bonsoir,
Classeur modifié, dites-moi si cela vous convient ( je commenterai le code )

Modules modifiés :
  • ThisWorkBook ( corrigez les lignes ci-dessous selon votre contexte )
VB:
Private Sub Workbook_Open()
  ' Dossier de sauvegarde de Gda,GdP et ce classeur avec la date en suffixe
    Names("Path_Save").RefersToR1C1 = ThisWorkbook.Path & "\Save\"
 
  ' Dossier où trouver Gda et GdP
    Names("Path_Data").RefersToR1C1 = ThisWorkbook.Path & "\Données\"
 
  ' Clone Usb de sauvegarde de Gda,GdP et ce classeur avec la date en suffixe
    Names("Path_Usb").RefersToR1C1 = ThisWorkbook.Path & "\H\"      '  "H:\"
  • Usf_Prêt ( anciennement UsfForm1 )
  • Mod_F55 ( anciennement Module6 )
Le classeur Xls est au format Excel...

fanch55

XLDnaute Barbatruc
Bonsoir,
Bigre, Excel 2000 !!!!

Ce n'est pas surprenant que les dernières versions d'Excel puisse le faire fonctionner
( compatibilité ascendante )

Je ne suis pas sûr par contre que les modifs que j'ai fait sous Excel 2019 soient acceptées par excel 2000 .
A tester ....
Ce que j'ai modifié :
  • Le module Thisworkbook
  • Le module Module6
  • La feuille Saisie : création du nom Douchette associé à la cellule A2 .
  • Le Userform Userform1:
    - remplacement du textbox par un combobox avec comme liste les Ean de Gda.xls et le champ Douchette comme référence ( la douchette devrait modifier ce champ Si la feuille Saisie est au premier plan), sinon on peut utiliser le combobox sans la douchette .
    - Modification de Userform_Initialize, Userform_QueryClose
    - Création de Sub Cbx_Douchette_Change()
A noter: J'ai fait les tests avec le complément "Scan It to Office" pour utiliser mon smartphone comme Douchette, mais ce complément ne sera pas compatible avec Excel 2000 .
 

Pièces jointes

  • GEST_essai douchette F55.xls
    240 KB · Affichages: 22
Dernière édition:

Chatron

XLDnaute Junior
Merci Fanch 55
je vais essayer cet aprem
J'avais bien tenté avec une combobox mais j'avais les mêmes problèmes
Excell 2000 parce que lorsque je me suis lancé sur cette application, en 2010, nous avions un ordi d'occasion avec office 2000
nous avons peu de moyens et comme cet ordi fonctionne (2h par semaine) très bien avec cette application, pourquoi en changer
encore Merci
Je te ( je crois que sur les forum on se tutoie !) tiens informé
 

Chatron

XLDnaute Junior
Bonsoir,
Bigre, Excel 2000 !!!!

Ce n'est pas surprenant que les dernières versions d'Excel puisse le faire fonctionner
( compatibilité ascendante )

Je ne suis pas sûr par contre que les modifs que j'ai fait sous Excel 2019 soient acceptées par excel 2000 .
A tester ....
Ce que j'ai modifié :
  • Le module Thisworkbook
  • Le module Module6
  • La feuille Saisie : création du nom Douchette associé à la cellule A2 .
  • Le Userform Userform1:
    - remplacement du textbox par un combobox avec comme liste les Ean de Gda.xls et le champ Douchette comme référence ( la douchette devrait modifier ce champ Si la feuille Saisie est au premier plan), sinon on peut utiliser le combobox sans la douchette .
    - Modification de Userform_Initialize, Userform_QueryClose
    - Création de Sub Cbx_Douchette_Change()
A noter: J'ai fait les tests avec le complément "Scan It to Office" pour utiliser mon smartphone comme Douchette, mais ce complément ne sera pas compatible avec Excel 2000 .
Bonsoir
Je viens de passer plusieurs heures sur le fichier que vous m'avez gracieusement réalisé, mais j'avoue que je suis en train d'y perdre le peu de VBA que je connais
Au départ il y a plusieurs beug que je peux corriger facilement: erreur de syntaxes sur les combobox nommées ComboBox2 ou 3 ici et CbB2 ou 3 ailleurs, Gest essai douchette et Gest essai douchette F55
Après ça, super ça marche .
Je sauvegarde, je redémarre et là : application bloquée ; impossible de faire quoi que ce soit, pas même d'ouvrir le VBA
Si j'ouvre une autre application avec de la VBA , je peux alors voir que la première bloque soit sur le module 6 soit sur Workbook_open à la ligne Worksheets("Saisie").Range("A1").Select
Qu'est ce que j'ai modifié de travers pour que ça plante ?
Si vous pouvez encore m'aider

D'autre part si c'était possible je préférerai plutôt une Textbox plutôt qu'une liste déroulante qui risque d'être la cause d’erreurs de manipulation (on clique sur la flèche par erreur)

Bon Week-end et merci pour votre aide
 

Pièces jointes

  • erreurs.doc
    11.5 KB · Affichages: 9
  • GEST_essai douchette_a.xls
    232 KB · Affichages: 12
C

Compte Supprimé 979

Guest
Bonjour Chartron, fanch55 😉

Pour qu'il y est moins de problème, perso, je mettrais ces lignes
VB:
    With Worksheets("Saisie")
      .Activate
      .Range("A1").Select
    End With
Plutôt qu'une seule

A+
 

fanch55

XLDnaute Barbatruc
D'autre part si c'était possible je préférerai plutôt une Textbox plutôt qu'une liste déroulante qui risque d'être la cause d’erreurs de manipulation (on clique sur la flèche par erreur)
J'avais mis un combobox pour palier à un dysfonctionnement éventuel de la douchette .
Classeur modifié avec un textbox et procédure d'ouverture et de sauvegarde améliorée.
 

Pièces jointes

  • GEST_essai douchette_a.xls
    241.5 KB · Affichages: 16
Dernière édition:

Chatron

XLDnaute Junior
J'avais mis un combobox pour palier à un dysfonctionnement éventuel de la douchette .
Classeur modifié avec un textbox et procédure d'ouverture et de sauvegarde améliorée.
Bonsoir
J'ai enfin pu travailler à mon programme et avec la méthode textbox que vous m'avez préparé, adaptée à mon programme, la douchette fonctionne à merveille, mais j'ai un autre problème : quand le livre n'a pas de codes barre enregistrés, la sélection par auteur ne marche plus,je peux bien sélectionner l'auteur, mais dans la liste des titres c'est les titres de tous les auteurs qui apparaissent !
ça bugue avec
VB:
If c.Value = Me.CbB2.Value [COLOR=rgb(184, 49, 47)][U]Then Me.CbB3.AddItem (c.Offset(0, 1).Value)[/U][/COLOR]
J'ai essayé de mettre la routine TbX_Douchette_Change() en pause :
Code:
Application.Tbx_Douchette_Change = False
mais ça bugue


Excusez mon incompétence

Merci beaucoup pour votre aide
 

fanch55

XLDnaute Barbatruc
Bonsoir,
Dans le classeur sur lequel j'ai travaillé ( uniquement pour la douchette ),
il n'y a pas la ligne de code que vous indiquez .
Le seul moyen de "mettre en pause " une sub événementielle, c'est de la renommer. Cad, transformer
Private Sub Tbx_Douchette_Change() 'action douchette
en Private Sub Tbx_Douchette_Change_old() 'action douchette par exemple .

Si j'ai bien compris, hors code barre enregistrée,
si vous sélectionnez un auteur vous voudriez tous les titres de celui-ci dans la combobox des titres ?
Ce n'est plus du tout le sujet de ce post .

Il faudrait que vous en créiez un autre .
Je vous rappelle cependant que nous sommes là pour vous aider et vous guider sur un point précis,
pas pour refaire un classeur en entier .
 

Chatron

XLDnaute Junior
Désolé de m’être mal fait comprendre
En fait avant de programmer avec le code barre ça fonctionnait en sélectionnant l'auteur qui ouvrait la liste de ses titres,
je n'ai pas modifié cette procédure, mais elle est visiblement contrariée par la procédure du code barre et je voudrais conserver cette possibilité pour les livres qui n,ont pas de code ISBN ou dont le code n'a pas été enregistré et donc que l'action douchette soit neutralisée quand on clique dans la combobox (CbB2) de la liste des auteurs
Je ne comprends pas pourquoi une procédure qui marchait bugue maintenant !
Merci
 

fanch55

XLDnaute Barbatruc
Nous ne devons pas parler du même classeur,
celui sur lequel j'ai travaillé (le premier que vous avez fourni) ne possèdait pas une telle fonction ,
les comboboxes n'étant par ailleurs non remplis .

Dans le classeur joint, j'ai mis en place un mini mécanisme de recherche par auteur .
Celui-ci fonctionne mais ne me donne pas du tout satisfaction car il est trop interférant avec les autres comboboxes . Le travail est beaucoup plus important et va me demander plus de temps . Je ne sais pas si cela en vaut la peine car les modules "à coté" me semblent aussi incomplets ou incohérent avec l'existant .
 

Pièces jointes

  • GEST_essai douchette F55 b.xls
    249 KB · Affichages: 8

Chatron

XLDnaute Junior
Nous ne devons pas parler du même classeur,
celui sur lequel j'ai travaillé (le premier que vous avez fourni) ne possèdait pas une telle fonction ,
les comboboxes n'étant par ailleurs non remplis .

Dans le classeur joint, j'ai mis en place un mini mécanisme de recherche par auteur .
Celui-ci fonctionne mais ne me donne pas du tout satisfaction car il est trop interférant avec les autres comboboxes . Le travail est beaucoup plus important et va me demander plus de temps . Je ne sais pas si cela en vaut la peine car les modules "à coté" me semblent aussi incomplets ou incohérent avec l'existant .
Bonjour
Merci pour votre patience extrême
Je n'ai pas pu essayer votre dernier fichier qui bloque sur mon ordi
j'ai pensé à une optionbouton qui bloquerait la procédure douchette , mais j'ai des incohérences que je n'arrive pas à résoudre
je vous joint la version annonimé de l'application qui fonctionne très bien depuis une dizaine d'années malgré les maladresses de certains novices :"Gest_bibliotheque-modif" et le fichier avec optionbouton (OpB)
Vous avez plus haut GdA et GdP
Merci pour votre aide
 

Pièces jointes

  • Gest_bibliotheque-modif.zip
    204.4 KB · Affichages: 7
  • GEST_bibliotheque-modif-OpB.zip
    226.4 KB · Affichages: 17

fanch55

XLDnaute Barbatruc
Bonsoir,
Classeur modifié, dites-moi si cela vous convient ( je commenterai le code )

Modules modifiés :
  • ThisWorkBook ( corrigez les lignes ci-dessous selon votre contexte )
VB:
Private Sub Workbook_Open()
  ' Dossier de sauvegarde de Gda,GdP et ce classeur avec la date en suffixe
    Names("Path_Save").RefersToR1C1 = ThisWorkbook.Path & "\Save\"
 
  ' Dossier où trouver Gda et GdP
    Names("Path_Data").RefersToR1C1 = ThisWorkbook.Path & "\Données\"
 
  ' Clone Usb de sauvegarde de Gda,GdP et ce classeur avec la date en suffixe
    Names("Path_Usb").RefersToR1C1 = ThisWorkbook.Path & "\H\"      '  "H:\"
  • Usf_Prêt ( anciennement UsfForm1 )
  • Mod_F55 ( anciennement Module6 )
Le classeur Xls est au format Excel 97/2003
Le classeur Xlsm est au format Excel 2019
 

Pièces jointes

  • GEST_Bibliotheque F55.xls
    253 KB · Affichages: 9
  • GEST_Bibliotheque F55.xlsm
    108.6 KB · Affichages: 14
Dernière édition:

Chatron

XLDnaute Junior
Bonsoir,
Classeur modifié, dites-moi si cela vous convient ( je commenterai le code )
Bonjour et Merci
Avant de lire votre réponse, javais réussi à résoudre le problème :
En fait la procédure que vous avez réalisé avec la TextBox douchette fonctionne très bien en l'incluant et l'adaptant à l'userform d'origine sans rien changer a thisworckbook ni aux modules : ainsi je peux sélectionner le livre soit avec la douchette soit avec l'auteur soit l'écrire dans les combobox : c'est ce que je souhaitais
Un grand merci pour votre aide, je n'aurais pas réussi sans vous
Je vais passer la discussion à résolu
Par contre, s'i ly a des personnes intéressées par ce programme qui peut gerer autre chose que des bibliothèques (gestion de stock ou autre gestion de prêts ...) il suffit de l'adapter, je suis prêt à le partager
[RESOLU]
 
Dernière édition:

Chatron

XLDnaute Junior
Bonsoir,
Classeur modifié, dites-moi si cela vous convient ( je commenterai le code )

Modules modifiés :

Le classeur Xls est au format Excel 97/2003
Le classeur Xlsm est au format Excel 2019
Bonjour
Je reviens vers vous car je voudrais ajouter un message quand le code barre d'un livre n'est pas enregistré et renvoyer le focus sur le CbB2 (auteurs) mais malgré 2 heures à essayer plusieurs solutions, je n'arrive au pire qu' empêcher la saisie par code barre de fonctionner
Voici mon code (avec ma modification qui ne marche pas entre parenthèses
VB:
Private Sub Tbx_Douchette_Change() 'action douchette
Dim Code As Range
    Me.CbB2 = ""
    Me.CBb3 = ""
    Me.CbB4 = ""
       If TbX_Douchette <> "" Then
        Workbooks("GdA.xls").Sheets("GdA").Activate
        Set Code = Columns("E").Find(TbX_Douchette.Value, , xlValues, xlWhole)
                
        If Not Code Is Nothing Then
             Me.CbB2 = Code.Offset(0, 1)
             Me.CBb3 = Code.Offset(0, 2)
             Me.CbB4 = Code.Offset(0, 3)
             MsgBox "CbB2" & Me.CbB2
            
                 ' (If Me.CbB2.Value = 0 Then
                    '' MsgBox "Code non enregistré, Saisisssez le nom de l'auteur"
                     'CbB2.SetFocus
                   'TbX_Douchette = ""
                    ' End If)
              End If
        TbX_Douchette.SetFocus
    
    End If
End Sub

Merci
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
314 708
Messages
2 112 097
Membres
111 416
dernier inscrit
philipperoy83