XL 2019 RECHERCHEV la source peut ne comporter qu'une partie de la plage

TRANKILL

XLDnaute Nouveau
Bonjour,
Je n'arrive pas à mes fins sur une chose simple à première vue.
Je fait une recherche d'une source A pour renvoyer la valeur C de la colonne B (B étant respectivement la colonne 1 et 2 de ma plage de donnée)
Le hic c'est que ma source (A) peut contenir plus d'info que la valeur C.

Je vous fournis le tableau c'est toujours plus explicite que de grande explications.

PS:
J'ai réussi à faire l'inverse de ce que je veux avec =RECHERCHEV("*"&C7&"*";Feuil2!$B$4:$C$26; 2;0) à la place de =RECHERCHEV(C7;Feuil2!$B$4:$C$26; 2;0)

Vous remerciant pour votre aide,
 

Pièces jointes

  • test excel.xlsx
    11.7 KB · Affichages: 5

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Trankill,
Pas bien compris votre problématique. Vous dites :
J'ai réussi à faire l'inverse de ce que je veux avec
Or si on test avec C7 ou "*"&C7&"*" on obtient les mêmes résultats hormis si la sources est vide :
ENTRÉE ARecherche sur
C7"*"&C7&"*"
AZEPOMMEPOMME
RGTPOIREPOIRE
RGTPOIREPOIRE
AZEPOMMEPOMME
FGHFRAISEFRAISE
ERTPOMMEPOMME
111AZE111
#N/A​
#N/A​
dfvdfAZEZfdvdfs
#N/A​
#N/A​
111RGT111
#N/A​
#N/A​
dfvdfRGTfdvdfs
#N/A​
#N/A​
#N/A​
POMME​
#N/A​
POMME​
#N/A​
POMME​

Pourriez vous mettre l'attendu dans la feuille 1 pour être plus explicite.
 

TRANKILL

XLDnaute Nouveau
Bonjour Sylvanu,
Ci-dessous le résultat souhaité:
2023-09-17_11h31_51.jpg


Je voudrais que le résultat s'affiche à partir du moment ou l'on trouve "AZE" dans la source (uniquement ou partiellment)
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,
Un essai en PJ avec la fonction perso :
VB:
Function Rechercher(C$, Plage)
    Dim T, i%
    Rechercher = "": If C = "" Then Exit Function
    T = Plage
    For i = 1 To UBound(T)
        If T(i, 1) <> "" And C Like "*" & T(i, 1) & "*" Then Rechercher = T(i, 2): Exit Function
    Next i
End Function
Les macros doivent être activées.
La syntaxe est =Rechercher(Entrée A;TableauBC)
 

Pièces jointes

  • test excel (1).xlsm
    16.1 KB · Affichages: 3

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re, avec quelques commentaires :
VB:
Function Rechercher(C$, Plage)
    Dim T, i%
    Rechercher = "": If C = "" Then Exit Function ' Si la valeur renvoyée est nulle on sort
    T = Plage   ' On tranfert le tableau d'équivalence dans un tableau VBA, plus rapide
    For i = 1 To UBound(T) ' Pour toute es lignes de ce tableau
        ' Si la chaine contient un des éléments du tableau, alors on renvoie la valur correspondante, et on sort.
        If T(i, 1) <> "" And C Like "*" & T(i, 1) & "*" Then Rechercher = T(i, 2): Exit Function
    Next i
End Function
 

Discussions similaires

Statistiques des forums

Discussions
312 207
Messages
2 086 246
Membres
103 163
dernier inscrit
Pelaez