Recherche à résultats multiples à partir d'une liste

Fermé
mccoy-13 Messages postés 2 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016 - 13 déc. 2016 à 11:06
mccoy-13 Messages postés 2 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016 - 13 déc. 2016 à 13:40
Bonjour,

Je suis dans une impasse depuis plusieurs semaines, et je vous remercie d'avance pour vos lumières...

Dans mon classeur Excel j'ai une feuille qui contient ma base de données, avec notamment ma liste de produits achetés, les références clients, contrats etc... et j'ai une seconde feuille qui contient le détail de ma facturation. La seule chose qui lie ces deux feuilles c'est la référence contrat.

J'aimerai donc pouvoir trouver à partir de mes références contrats de ma feuille1 de facturation, l'ensemble des produits achetés par le client dans ma BDD en feuille2 (en incluant les informations contenues dans les colonnes voisines).

La rechercheV me limite grandement car elle ne permet d'obtenir qu'un seul résultat de recherche. Je pensais donc à deux solutions que je n'arrive pas à mettre en place :

- soit un module VBA qui me permettrait de pouvoir effectuer une recherche me donnant plusieurs résultats qui serait éclatés sur N lignes et colonnes

- soit une mise en forme conditionnelle qui me permettrait de mettre en valeur mes références contrats dans les deux feuilles.

J'ai essayé le code suivant (de mister RDR sur youtube) mais cela ne fonction que pour une colonne :

Function VLookUpListSplitPerCells(ValeurRecherchee As Range, TableDeRecherche As Range, NumColonne As Integer, Optional Separator As String) As Variant

Dim NbLignes As Integer
NbLignes = TableDeRecherche.Rows.Count

Dim CompteurValeursTrouvees As Integer
CompteurValeursTrouvees = 0

Dim ChaineValeursTrouvees As String
ChaineValeursTrouvees = ""

If Separator = "" Then Separator = ";"

For i = 1 To NbLignes
If TableDeRecherche(i, 1).Value = ValeurRecherchee.Value Then
CompteurValeursTrouvees = CompteurValeursTrouvees + 1
If CompteurValeursTrouvees > 1 Then
ChaineValeursTrouvees = ChaineValeursTrouvees & Separator & TableDeRecherche(i, NumColonne).Value
Else
ChaineValeursTrouvees = TableDeRecherche(i, NumColonne).Value
End If
End If
Next i

VLookUpListSplitPerCells = Application.WorksheetFunction.Transpose(Split(ChaineValeursTrouvees, Separator))

End Function

Avez vous une idée pour mon exemple ?

Merci

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
13 déc. 2016 à 11:18
Bonjour

voir
https://mon-partage.fr/f/BzDBhgAE/

en espèrant que...
0
mccoy-13 Messages postés 2 Date d'inscription mardi 13 décembre 2016 Statut Membre Dernière intervention 13 décembre 2016
Modifié par mccoy-13 le 13/12/2016 à 13:40
J'ai déjà vu cette solution mais elle ne colle pas avec mon cas car je dois rechercher plus de 900 références différentes et j'aimerai afficher l'ensemble des résultats dans une feuille. Or ici je ne peux voir qu'une référence.
0