Microsoft 365 Récupérer Données d'un Tableau structuré

  • Initiateur de la discussion Initiateur de la discussion eric72
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eric72

XLDnaute Accro
Bonjour,
J'ai un fichier avec un Userform, lorsque j'ouvre celui-ci, je fais une "Recherche intuitive" exemple "Pain", et j'aimerai qu'en sélectionnant dans la listbox "Pain au chocolat" que TEXTBOX et COMBOBOX (le prix, la famille etc... ) se remplissent mais je ne trouve pas comment, en sachant que la base est un tableau structuré, quelqu'un a-t-il la solution a ce problème
Merci beaucoup pour votre dévouement.
Eric
 

Pièces jointes

Bonsoir
Votre projet VBA est protégé par un mot de passe.
Cette ressource permet de régler pratiquement tous les problèmes du genre que vous évoquez.
Ses modules de service peuvent aussi être implantés à même le projet du classeur utilisateur.
 
Bonsoir
Votre projet VBA est protégé par un mot de passe.
Cette ressource permet de régler pratiquement tous les problèmes du genre que vous évoquez.
Ses modules de service peuvent aussi être implantés à même le projet du classeur utilisateur.
Ah oui en effet, désolé!!!
Merci
 

Pièces jointes

Alors. Pour bénéficier du ComboBoxLiées, toutes les données d'identification où de recherche d'une ligne doivent être impérativement saisies dans des ComboBox. Par exemple une CBxFamille et une CBxDésign. Pour cette dernière, un recherche intuitive sera possible.
 
Sur le modèle de ça, par exemple, avec deux ComboBox, une pour le prénom, l'autre pour le nom.
On y saisit essentiellement ce qu'on veux. Les choix d'existant dans les listes dynamiques assumées sont plutôt rares.
Remarque: Les ComboBox à listes fixes peuvent aussi être prises en charge par le ControlsAssociés. Seules celles qui ont un rapport avec la recherche doivent l'être par le ComboBoxLiées.
 

Pièces jointes

Dernière édition:
C'est fait automatiquement pas la méthode ValeursDepuis du ControlsAssociés.
Et pour les ComboBox non renseignées prises en charge par le ComboBoxLiées, celui ci les garnit toutes dès que celles renseignées n'aboutissent plus qu'à une seule ligne existante.
 
Dernière édition:
Et bien moi c'est dans la ComboBox qu'il faudra taper une partie du texte, qui ne devra pas forcément être au début (car ce serait inutile pour ça seulement) …
Le texte souhaité pourra être sélectionné dans sa liste, qui sera affichée d'office.
La procédure devrait être celle ci :
VB:
Private Sub CLs_SujFltChg(ByVal CBM As ComboBoxMmbr, ByVal Filtré As Boolean)
   If Not CBM.CBx Is Me.ActiveControl Then Exit Sub
   If Not CBM.CBx Is Me.CBxDésign Then Exit Sub
   If CBM.CBx.MatchFound Or CBM.CBx.Text = "" Then Exit Sub
   Dim S ' Sujet temporaire pour recherche intuitive
   S = SujCBxLike(CBM.SujetFlt, "*" & CBM.CBx.Text & "*")
   If IsEmpty(S) Then Exit Sub
   CBM.SujetFlt = S ' Affectation du sujet temporaire.
   CBM.CBx.DropDown ' Affichage de la liste
   End Sub
 
Dernière édition:
Bonjour
Merci beaucoup pour cette solution mais ça ne correspond pas à mon souhait, en fait je souhaitais que même si on tape chocolat dans la textbox tous les produits avec chocolat dans la désignation apparaissent et qu'après la sélection de l'un d'entre eux les autres champs se remplissent.
Mais merci beaucoup pour le temps consacré.
Bonne journée
Eric
 
Si on tapera "chocolat" dans la ComboBox ça y proposera la liste des désignations contenant ce mot.
Vous savez, une ComboBox c'est fait avant tout pour y saisir des choses, pas pour se précipiter aveuglément sur le bouton flèche pour afficher la liste. Mais là elle sera affichée d'office.
 
Pour dépanner :
modifier l'Userform
VB:
Private Sub LstProduit_Click()
With LstProduit
         NomPatisserie = .List(.ListIndex, 0)
             PrixAchat = LookupV(.Column(0), [BDProduit], 2)
             CBFamille = LookupV(.Column(0), [BDProduit], 3)
          CoeffFamille = LookupV(.Column(0), [BDProduit], 4)
    CBTvaAcheteRevendu = LookupV(.Column(0), [BDProduit], 5)
  End With
End Sub
Function LookupV(What, Target, Idx)
On Error Resume Next
    LookupV = WorksheetFunction.VLookup(What, Target, Idx)
    If Err Then LookupV = "": Err.Clear
End Function
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
414
Retour