Microsoft 365 Après filtre ave ComboBox (ListView), Recherche avec 4 critères dans BDD et sélectionner la ligne correspondante

Piment

XLDnaute Occasionnel
Bonjour à tous.
Une fois de plus je fais appel à vos compétences pour m'aider.
Dans le fichier ci-joint, j'ai un USF "Ajouter_Catalogue". Dans la zone "Modifier, Supprimer une Fleur, j'ai 3 ComboBox liés qui permettent un filtre selon les choix effectués.
Ce que je voudrais obtenir, c'est, qu'une fois les choix effectués la ligne correspondante dans la base "Elements Fleurs" (Tbl__List_Fleurs) soit sélectionnée. Il me faudrait donc rechercher le Nom de la Fleur, puis le Catalogue et enfin le Fournisseur. Une fois trouvé, sélection de la ligne correspondante.
J'ai beaucoup cherché, j'ai beaucoup trouvé sur le Forum, mais je n'ai pas réussi à adapter.
Y aurait-il une âme charitable, qui aurait un peu de temps à consacrer à mon problème ?
Avec tous mes remerciements anticipés.
Claude.
 

Piment

XLDnaute Occasionnel
Jean-Marie bonjour,
Je suis désolé de ne pas t'avoir fait un retour plus tôt, mais j'étais pas mal débordé ces derniers jours.
Alors ce matin, je suis de nouveau sur mon fichier.
Ce que tu me proposes, à l'arrivée, répond à mon problème initial, à savoir récupérer la ligne concernée après les différents filtres.
Mais, il faudrait que le premier filtre se fasse sur le comboBox " Nom de la Fleur" et remonte alors les "Catalogues" qui contiennent la fleur dans le comboBox "Catalogue", puis remonte les catégories dans le ComboBox "Catégorie", et enfin le comboBox "Fournisseurs".
La listview affiche toutes les lignes récupérées par les filtres.
Sur click de l'un des Items de la Listview : sélection de la ligne choisie dans le tableau.
Dans le fichier transmis au post #3 les filtres fonctionnent à priori correctement.
Il me faut juste récupérer la ligne dans le tableau.
J'ai essayé d'adapter dans mes codes la partie "ListViex_Modifier_ItemClick:
VB:
   Ligne = Item.ListSubItems(10).Text
 With Range("Tbl_Liste_Fleurs").ListObject 'Avec le tableau structuré
               .Range.Interior.Color = xlNone
   With .ListRows(Ligne).Range
  
          .Select
          .Interior.Color = vbRed
  
   End With
 End With
Mais je n'ai pas réussi.
Si tu pouvais m'aider.
J'ai bien conscience du travail que tu as fourni, et je ne t'en remercierai jamais assez, mais tes codes sont compliqués pour moi. J'ai beaucoup de mal à m'y retrouver !
Je suis extrêmement gêné !
Avec tous mes remerciements.
Claude
 

ChTi160

XLDnaute Barbatruc
Bonjour Claude
Tu dis : "Mais, il faudrait que le premier filtre se fasse sur le comboBox " Nom de la Fleur" et remonte alors les "Catalogues" qui contiennent la fleur dans le comboBox "Catalogue", puis remonte les catégories dans le ComboBox "Catégorie", et enfin le comboBox "Fournisseurs"."
pourquoi ta base de données n'est elle pas dans cette Ordre "Nom de la Fleur" colonne 1 , "Catalogues" en Colonne 2 et la suite ????? (ou alors j'ai pas la Bonne Base de Données , dis moi !)
Pour la récupération de la Ligne :
Exemple la Ligne se trouve en Colonne 11 de la ListView .
VB:
Ligne = Item.ListSubItems(10) 'Ligne Cible
je ne sais pas comment est récupéré l'index de la Ligne , lors du chargement de la ListView.
je te joins un nouveau fichier ou je vais inverser les Combobox !
Bonne fin de Journée
Jean marie
 

Piment

XLDnaute Occasionnel
Re:
Jean-Marie, j'ai juste besoin du code qui me permet de sélectionner la ligne concernée après le click sur l'Item de la listview.
Concernant ton dernier envoi:
le ComboBox "Choix de la fleur" doit être vide: saisi intuitive: Catalogue ne remonte que les catalogues concernés part le choix de la fleur ; idem pour les autres comboBox.
Mais comme je te l'ai dit plus haut, il me faut juste le code pour sélectionner la ligne dans le tableau, à partir des codes existants (si possible). Sans reprendre tous les codes de l'Usf. La couleur de la ligne est déjà en place. Si la ligne est sélectionnée, la couleur changera.
Une fois encore, grand merci à toi.
Claude.
 

ChTi160

XLDnaute Barbatruc
Re
Je pense que tu devrais demander , à je ne sais plus qui ,mais la personne qui a fait le code qui remplie la Listview . Moi ADO je n'y comprends rien lol
Tu dis :"le ComboBox "Choix de la fleur" doit être vide: saisi intuitive: " ça doit fonctionner même si combobox rempli ! Non ?
"Catalogue ne remonte que les catalogues concernés part le choix de la fleur ; idem pour les autres comboBox." Ne serait ce pas le principe des Combobox en cascades ? Je ne comprends pas lol
Bonne fin de soirée
Jean marie
 
Dernière édition:

Piment

XLDnaute Occasionnel
Re:
Lorsque j'ouvre l'USF, Tous les comboBox contiennent "<<Toutes>>" ou <<Tous>>.
Si Je sélectionne "<<Toutes>> dans le comboBox "Choix de la Fleur" et je tape les premières lettres du nom de la fleur, il Beug.
Je suis obligé de chercher dans la liste et de sélectionner la fleur : là, ça marche.
Test avec "Babe" comme nom de la fleur.
Je vais essayer, encore et encore, de trouver comment faire sans changer mes codes.
Sinon, je ferais copier/coller de tes codes, mais ça ne m'arrange pas : je ne maîtrise pas, et si demain je dois intervenir, je serais coincé !
La personne qui a fait le code est Fanch55. Il m'a demandé de créer une nouvelle discussion, mais il n'a plus donné de nouvelle.
Merci à toi.
Bonne soirée également.
Claude.
 

Piment

XLDnaute Occasionnel
Re:
Jean-Marie, je crois qu'on ne se comprend pas.
Je te remets le fichier en pièce jointe.
Tu verras que tout fonctionne, apparemment comme il faut.
Page d'accueil : clic sur le bouton "Menu". Un Usf "Accueil" s'ouvre.
Clique sur le bouton "Ajouter Nouvelle Fleur ou Modifier". L'usf s'ouvre.
Cet Usf contient 2 Frames: 1 pour ajouter une nouvelle Fleur, et l'autre pour Modifier ou Supprimer une fleur existante.
C'est sur cette partie qu'on intervient.
A l'ouverture de l'Usf les ComboBox sont vides.
Clic sur le ComboBox "Nom de la Fleur" et entre les première lettres "Bab" : le nom "Babe" s'affiche, et la ListView remonte tous le "Babes" qu'il a trouvé dans la base.
Clic sur la flèche du ComboBox "Catalogue", tu n'y trouveras que les catalogues concernés par la saisie dans le premier comboBox.
Choisis l'un des catalogues : la Listview n'affichera que les "Babes" du catalogue sélectionné.
Tu vas dans le ComboBox "Fournisseur" et tu n'y trouveras que les ou le fournisseur concerné par les précédentes saisies. Si plusieurs fournisseurs pour cette fleur, la Listview n'affichera que le fournisseur lié aux précédents choix.
Si tu cliques sur l'un des Items de la Listview, les Textbox se rempliront.
Tout cela fonctionne.
Il n'y a plus à intervenir la-dessus.
La seule chose que je n'arrive pas à faire : c'est de lui dire d'aller chercher dans le tableau la ligne choisie dans la ListView et de la sélectionner.
Le changement de couleur : pas besoin, c'est déjà fait. Ce changement s'opérera dès lors que la ligne est sélectionnée.
J'ai donc besoin du ou des codes pour lui dire d'aller sélectionner dans le tableau la ligne sélectionnée dans la ListView.
C'est tout.
 

Pièces jointes

  • Test Magasin Essaie 2 (2) Tableau.xlsm
    228.5 KB · Affichages: 3

Piment

XLDnaute Occasionnel
Re:
Apparemment tu as mal pris le "c'est tout".
J'en suis désolé ! Vraiment.
Il n'y avait aucune mauvaise intention dans mon propos.
Ce que je voulais dire : "ne te prends pas la tête à tout reprendre, c'est tout ce qu'il reste à faire".
Le reste fonctionne.
Depuis que j'ai découvert ce forum, j'ai toujours eu de l'aide des uns et des autres, et particulièrement de ta part. Tu sais bien que j'ai parfaitement conscience de l'empathie dont tu fais preuve à mon égard.
Si je t'ai blessé, j'en suis désolé, vraiment. Ce n'était absolument pas mon intention.
J'espère que le malentendu est levé.
Je te souhaite, sincèrement, une bonne nuit.
Claude
 

Discussions similaires

Statistiques des forums

Discussions
312 520
Messages
2 089 297
Membres
104 092
dernier inscrit
karbone57