Petite adaptation d'une fonction de recherche

Bastien66

XLDnaute Nouveau
Bonjour à tous,

j'étais à la recherche d'une fonction de recherche qui me permettrait de renvoyer dans une seule et même cellule de ma feuille B toutes les occurrences trouvées dans ma feuille A. J'ai trouvé sur le fabuleux site de BoisgontierJacques, toutes sortes de formules et fonction dont une qui correspond exactement à ce que je veux faire à un exception prêt.

La formule est la suivante (source: Fonction Recherchev()) :

Function RechTous(v, champRech As Range, ChampRetour As Range, separateur)
a = champRech
temp = ""
For i = 1 To champRech.Count
If a(i, 1) = v Then
temp = temp & ChampRetour(i) & separateur
End If
Next i
RechTous = Left(temp, Len(temp) - 1)
End Function

Mon problème est que cette fonction ne fonctionne que si toutes les variables sont dans la même feuille, alors que dans mon cas "v" est dans la feuille B; "champRech" et "ChampRetour" sont dans la feuille A".

Je pense qu'une petite adaptation de la formule est nécessaire mais je n'ai pas les connaissances nécessaires en VBA pour faire cela. Un peu d'aide serait la bienvenue!

Merci par avance
 

Modeste

XLDnaute Barbatruc
Re : Petite adaptation d'une fonction de recherche

Bonsoir Bastien66 et bienvenue,

J'ai testé, sur le site de JB, le fichier qui illustre sa fonction personnalisée. J'ai déplacé la cellule contenant la valeur cherchée dans une autre feuille du classeur (Feuil1), en A5.
La formule devient:
Code:
=rechtous(Feuil1!A5;B6:B18;C6:C18;",")
... et semble toujours fonctionner!? ... ou alors, je n'ai pas compris ton souci?
 

Bastien66

XLDnaute Nouveau
Re : Petite adaptation d'une fonction de recherche

Bonsoir Bastien66 et bienvenue,

J'ai testé, sur le site de JB, le fichier qui illustre sa fonction personnalisée. J'ai déplacé la cellule contenant la valeur cherchée dans une autre feuille du classeur (Feuil1), en A5.
La formule devient:
Code:
=rechtous(Feuil1!A5;B6:B18;C6:C18;",")
... et semble toujours fonctionner!? ... ou alors, je n'ai pas compris ton souci?

Bonsoir Modeste,

effectivement tu n'as pas compris mon soucis, la fonction perso : =rechtous(X;Y;Z;","), se trouve sur la feuille B, le paramètre X se trouve également sur la trouve B, mais les paramètres Y et Z sont sur la page A.

Ta solution de gosselien fonctionne parfaitement mais une autre solution m'arrangerait plus, car si j'applique ta façon je devrais nommer +/- 100 zones qui sont amener à être modifier au fil du temps.
 

Discussions similaires

Réponses
12
Affichages
444

Statistiques des forums

Discussions
311 720
Messages
2 081 886
Membres
101 830
dernier inscrit
sonia poulaert