XL 2019 Evénement click sur listbox

tuonoman

XLDnaute Occasionnel
Bonjour à tous,

Je travaille actuellement sur un projet de gestion de stock sur excel, rien de très classique. Très novice en VBA je commence juste à me former

J’ai réussi à faire une première partie qui me permet de me créer mes produits, bouton « Créer un article » sur feuille tableau de bord.

J’ai réussi à faire un module de recherche par mot clé dans la partie modifier un article ( sur feuille tableau de bord ), attention pour l’instant uniquement la textbox « produit » fonctionne.

Mais à cet instant je bute sur le point suivant, en l’occurrence je souhaite réaliser un évènement click dans ma listbox me permettant de remplir automatiquement les textbox (Produit, détail, fabriquant …..) correspondant au produit que j’ai sélectionné dans ma listbox.



J’ai testé différentes solutions qui ne fonctionnent pas bien et dont la logique du code ne met pas très claire, j’ai donc volontairement rien mis dans « click listbox »

Quelqu'un aurait-il une solution à me proposer,

merci de votre aide
 

Pièces jointes

  • Gestion de stock echange.xlsm
    69.2 KB · Affichages: 10

JM27

XLDnaute Barbatruc
Bonjour
Je suppose que tu veux récupérer la ligne de la base de donnée cliquée dans la list box( en modification)
il suffit tout simplement de mettre le numéro de ligne en colonne 2 de la listbox(colonne masquée)
et après il suffit d'alimenter les autres objets.

comme tu as plusieurs objets , tu peux aussi documenter la propriété tag des différents objet avec le numéro de colonne correspondant de la base de données , et documenter les objets en créant une boucle sur ceux ci.
 

Pièces jointes

  • Gestion de stock echange.xlsm
    47.2 KB · Affichages: 12
Dernière édition:

tuonoman

XLDnaute Occasionnel
Merci @ JM27

Oui l’idée est là mais tu as remarqué que volontairement je restreins les informations qui apparaissent dans le « listbox » mais pour autant je souhaiterais si possible que lorsque je clic sur le résultat d’une recherche dans la listbox cela renseigne les textbox sous le listbox.

J’espère être plus claire

Merci
 

tuonoman

XLDnaute Occasionnel
Juste parfait

Mais mon niveau actuel ne me permet pas de comprendre ton code

VB:
Private Sub listproduct_Click()


Dim Ctrl As Control


If Me.listproduct.ListIndex = -1 Then Exit Sub


'MsgBox (Me.listproduct.List(Me.listproduct.ListIndex, 1))


For Each Ctrl In Me.Controls


If Ctrl.Tag <> "" Then


Ctrl.Value = Feuil1.Cells(Me.listproduct.List(Me.listproduct.ListIndex, 1), CByte(Ctrl.Tag))


End If


Next


End Sub



As-tu le temps de commenter ton code pour m’aider a progresser.

Encore merci
 

JM27

XLDnaute Barbatruc
bonsoir
VB:
Private Sub listproduct_Click()
    Dim Ctrl As Control
    ' si aucun élément est sélectionné , je sors
    If Me.listproduct.ListIndex = -1 Then Exit Sub
         ' Pour chaque controle de mon userform
         For Each Ctrl In Me.Controls
            ' si ceux ci ont une propriété tag de défini
            ' rappel dans la propriété tag des éléments à documenter j'ai inscris la colonne de la base de données
            ' exemple le détail est en colonne a la propriété tag : 3
            If Ctrl.Tag <> "" Then
               ' j'affecte au controle la valeur de la base de donnée
               ' exemple dans Me.listproduct.List(Me.listproduct.ListIndex, 1) est rangé la ligne sélectionnée
               ' CByte(Ctrl.Tag) est rangé la colonne de l'objet
               ' donc le controle est affectée à la valeur de la base de donnée intersection ligne/colonne
               ' et cela pour tout les contrôles ayant un tag documenté.
               Ctrl.Value = Feuil1.Cells(Me.listproduct.List(Me.listproduct.ListIndex, 1), CByte(Ctrl.Tag))
            End If
         Next

End Sub

Ci joint propriétés tag de la textboxDétail
Capture.JPG
 

Pièces jointes

  • Gestion de stock echange.xlsm
    49.7 KB · Affichages: 9

tuonoman

XLDnaute Occasionnel
Bonjour JM27

je rencontre des difficultés avec le fichier d'origine, je n'arrive pas trouver le problème.

peux tu jeter un un coup d'œil et me mettre sur la piste

merci
 

Pièces jointes

  • Gestion de stock share1.xlsm
    290.8 KB · Affichages: 4

JM27

XLDnaute Barbatruc
bonjour
quand une combobox est en style dropdownlist , elle n'accepte pas des valeurs autres que celles inscrites dans la liste.
donc manufacture1 par exemple n'existe pas dans la liste de la combo fabricant : => plantage.
Si tu passes la combobox en dropdownCombo elle accepte des valeurs autre que celles de la liste des fabricant. :=> plus de plantage.
A toi de voir ce que tu souhaites faire : adapter ta base de données à tes listes sur tout l'ensemble des combo ou autoriser des saisies autres.

de plus dans la combo lieu de stockage la colonne de destination est 15 et non 14 !
il doit persister d'autres pb ( notamment des valeurs numériques transférées sous forme de texte )
 

Pièces jointes

  • Gestion de stock share1.xlsm
    279.1 KB · Affichages: 24

Discussions similaires

Statistiques des forums

Discussions
312 176
Messages
2 085 961
Membres
103 066
dernier inscrit
bobfils