Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Recherche dans une cellule CONTENANT xxx

1 réponse
Avatar
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

1 réponse

Avatar
Olivier B
La réponse a été trouvée par JB !!!

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



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