Recherche dans une cellule CONTENANT xxx
Le
Olivier B
Bonjour à tous !!!
Partons sur une base claire pour que tout le monde se comprenne
Voici un exemple simplifié de 2 tableaux regroupés sur la même feuille.
Tableau Alpha = colonnes A et B
Tableau Beta = colonnes D et E
|A | B | C | D | E
1| xxx | code1 | | bla zzz | formule qui renvoie le code
2| yyy | code2 | | bla yyy bla| formule
3| zzz | code3 | | xxx bla | formule
4| | | |bla xxx bla | formule
5| | | |bla xxx | formule
6| | | | yyy bla | formule
Je souhaite que la formule ou le code vba se comporte comme la formule
recherchev, à savoir :
Je prend une valeur de la colonne D, je recherche dans la matrice composée
des colonnes A et B. Lorsque le sujet (colonne A) est contenu dans la valeur
de la colonne D, le code correspondant de la colonne B est renvoyé.
Mais ATTENTION ! La colonne D contient aussi autre chose que le code et
c'est bien à partir de la colonne D que l'on effectue les recherches (sinon
un recherchev + * suffirait
"Daniel" a écrit : (et merci à lui encore une fois)
> En E1, à recopier vers le bas :
> =INDEX($B:$B;EQUIV("*"&A1&"*";$D:$D;0);)
> Daniel
il s'agit ici d'une bonne piste, néanmois, dès que la taille du tableau B
(colonnes D et E) dépasse celle du tableau A (les codes), le résultat devient
FAUX. Ce qui est problématique, n'est-ce pas ?
Il faudrait maintenant que la formule reste valable pour les cellules e4 et
e5 par exemple
A vous de jouer. Je compte vraiment sur vous. Ayez pitié. Merci.
Le challenge est lancé.
--
olivier
Partons sur une base claire pour que tout le monde se comprenne
Voici un exemple simplifié de 2 tableaux regroupés sur la même feuille.
Tableau Alpha = colonnes A et B
Tableau Beta = colonnes D et E
|A | B | C | D | E
1| xxx | code1 | | bla zzz | formule qui renvoie le code
2| yyy | code2 | | bla yyy bla| formule
3| zzz | code3 | | xxx bla | formule
4| | | |bla xxx bla | formule
5| | | |bla xxx | formule
6| | | | yyy bla | formule
Je souhaite que la formule ou le code vba se comporte comme la formule
recherchev, à savoir :
Je prend une valeur de la colonne D, je recherche dans la matrice composée
des colonnes A et B. Lorsque le sujet (colonne A) est contenu dans la valeur
de la colonne D, le code correspondant de la colonne B est renvoyé.
Mais ATTENTION ! La colonne D contient aussi autre chose que le code et
c'est bien à partir de la colonne D que l'on effectue les recherches (sinon
un recherchev + * suffirait
"Daniel" a écrit : (et merci à lui encore une fois)
> En E1, à recopier vers le bas :
> =INDEX($B:$B;EQUIV("*"&A1&"*";$D:$D;0);)
> Daniel
il s'agit ici d'une bonne piste, néanmois, dès que la taille du tableau B
(colonnes D et E) dépasse celle du tableau A (les codes), le résultat devient
FAUX. Ce qui est problématique, n'est-ce pas ?
Il faudrait maintenant que la formule reste valable pour les cellules e4 et
e5 par exemple
A vous de jouer. Je compte vraiment sur vous. Ayez pitié. Merci.
Le challenge est lancé.
--
olivier

Poser une question


Bonjour,
Function ChercheCode(champ, code, element)
ChercheCode = ""
For i = 1 To champ.Count
If InStr(element, champ(i)) > 0 Then ChercheCode = code(i)
Next i
End Function
=cherchecode(A2:A6;B2:B6;D2)
http://cjoint.com/?eerbzFSsVU
JB
--
olivier