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.
 

ChTi160

XLDnaute Barbatruc
Bonjour Claude
J'espère que tu vas bien ?
Il me semble que tu as oublié le Fichier.
Il faudrait peut être récupérer l'index de la ligne lors du chargement des données dans la Listview( dans une colonne cachée)
Bonne fin de journée
Jean marie
 
Dernière édition:

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie.
Ca vas bien , merci.
Et toi comment tu vas ?
Merci d'être fidèle à mes appels. Vraiment, j'apprécie.
Pour en revenir à ma demande: c'est ce que j'ai tenté de faire, mais sans succès.
J'ai mis ces codes dans le Cbx-Recherch_Nom:
VB:
With Sheets("Elements Fleurs")
        Set Trouve = .Range("D:D").Find(what:=Cbx_Recherch_Nom, LookIn:=xlValues, LookAt:=xlWhole)
        If Trouve Is Nothing Then
            MsgBox "Cette fleur n'est pas référencée dans le Tableau!" & vbCrLf & "Veuillez l'ajouter dans le Tableau!"
            Cbx_Recherch_Nom = ""
            Cbx_Recherch_Nom.SetFocus
            Exit Sub
            Else
            Trouve.Select
        End If
    End With

    Filter_Me

Il me trouve bien la fleur, et il sélectionne la ligne, mais si j'ai plusieurs fleurs du même nom dans des catalogues différents et des fournisseurs différents, il se positionne sur le premier nom trouvé, qui n'est pas forcément le bon. Dans le comboBox "Nom de la fleur" entre le nom "Babe" et tu comprendras mieux.
D'où le besoin de rechercher sur plusieurs critères.
Le n° ligne , je le récupère déjà par le biais de codes que j'ai placés directement dans la feuille "Elements Fleurs"
Le N° de la ligne est envoyé dans la feuille "Parametres" en cellule "M2".
Je m'en sers pour la mise en forme conditionnelle du tableau.
Si tu cliques directement dans n'importe quelle cellule du tableau, toute la ligne est mis en vert. J'obtiens le même résultat avec le code intégré dans le comboBox "Nom de la Fleur" (Trouve.Selet). Mais ce n'est pas forcément la bonne ligne. il prend le premier nom trouvé.
Merci pour ton aide.
Bonne journée à toi.
 

ChTi160

XLDnaute Barbatruc
Bonjour Claude
je viens de regarder ton fichier et je n'ai pas pu vérifier , ce que tu expliques !
pourrais tu mettre la démarche de ce que tu fais et ce que tu veux?
sur quel userform travailles tu ?
moi je suis allé sur "Ajouter_Catalogue" ou se trouve un "Cbx_Recherch_Nom"
je n'ai pas vu le code que tu as mis #4
Bonne fin de Journée
Jean marie
 

Piment

XLDnaute Occasionnel
Re Jean-Marie.
Tu étais bien sur le bon Usf.
La démarche:
1) Je choisis une fleur (Babe): un filtre s'opère dans la Listview et tous les "Babe" remonte.
2) Je chois le Catalogue: un filtre s'opère dans la Listview et remonte tous les "Babe" du catalogue
3) Je choisis un Fournisseur un filtre s'opère dans la Listview et remonte le ou les "Babes" de ce fournisseur.
A ce stade, ce que j'aimerais avoir, c'est la recherche dans la feuille "Elements Fleurs" de la fleur choisie et sélection de la ligne dans le tableau.
Normalement, à ce moment là, la ligne passera en fond vert (Mise en Forme Conditionnelle déjà en place sur la feuille).
4) Sur click de l'un des Items, envoie des données dans les textBox.
5) je modifie ou complète les données des TexBox, et validation pour mise à jour dans le tableau.
Le code que j'ai mis à mon poste précédent, tu ne l'as pas trouvé parce que je l'avais enlevé du fichier que j'ai envoyé.
Il fonctionne, mais il s'arrête sur le premier "Babe" qu'il trouve, pas forcément celui qu'il faut par rapport aux éléments saisis dans les ComboBox.
Il faudrait donc une recherche Multi-Critères.
C'est ce que j'ai essayé de faire mais sans succès.
Merci à toi, et bonne après-midi.
 

ChTi160

XLDnaute Barbatruc
Re
Je ne comprends pas si tu sélectionnes ta fleur dans la Listview ,il te suffit de récupérer l'index de la ligne cible préalablement enregistré dans une colonne cachée de ta Listview ! Je croyais que cela tu le faisais .
Dis moi si tu as fais cela (enregistrer les numéros de lignes )
Bonne soirée
Jean marie
 
Dernière édition:

Piment

XLDnaute Occasionnel
Bonjour Jean-Marie.
Je t'explique:
Dans le tableau "Tbl_Liste_Fleurs", plage "B:K", je n'ai pas de colonne cachée qui récupère les index de lignes.
Les Index de lignes je les récupère dans le tableau "Tbl_IndexLignes" qui se trouve en colonne "A", qui est masquée dans le fichier. Ces 2 tableaux sont sur la feuille "Eléments Fleurs".
Donc pour répondre à ta question: je récupère les index de lignes, mais pas directement dans le tableau "Tbl_Liste_Fleurs", tableau sur lequel est basé la ListView.
Dans l'attente de ton retour, je te souhaite une bonne journée.
Merci à toi.
 

ChTi160

XLDnaute Barbatruc
Bonjour Claude
On ne c'est pas compris ! Je ne parle pas de colonne d'index , cachée dans le tableau structuré,mais dans la listview. On récupère l'index pour sélectionner la lugne cible ,lors de la sélection de la ligne dans la Listview.
Je te met une vidéo des que possible.
Bonne journée
Jean marie
 

Discussions similaires

Statistiques des forums

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