Défi de comparaison de contenus entre deux colonnes de textes [Résolu]

Messages postés
3
Date d'inscription
vendredi 19 avril 2019
Statut
Membre
Dernière intervention
22 avril 2019
- - Dernière réponse : ccm81
Messages postés
9060
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 août 2019
- 22 avril 2019 à 17:12
Bonjour à toutes et à tous,
d'habitude je m'en sors toujours avec les formules sous Excel, mais là, j'avoue de que je sèche...

Voici mon problème.
COL A : contient une liste d'expressions
COL B : contient le résultat de ce que je veux faire (OUI ou NON)
COL C : contient des mots à tester et à comparer avec les expressions de la colonne A



En clair, si dans la colonne A une expression contient au moins un mot présent dans la colonne C, il faut renvoyer la valeur "OUI" dans la colonne B.
J'ai mis en rouge dans l'illustration ce que ça donnerait si ça marchait... mais je trouve pas !!!

Si quelqu'un voit la solution...
Merci d'avance.
Afficher la suite 

3 réponses

Messages postés
9060
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 août 2019
1609
0
Merci
Bonjour

Une proposition avec macro
https://www.cjoint.com/c/IDtsnqzBCIB

Cdlmnt
vdeux007
Messages postés
3
Date d'inscription
vendredi 19 avril 2019
Statut
Membre
Dernière intervention
22 avril 2019
-
merci bcp pour la macro et le fichier joint. Nickel.
Bravo....
ccm81
Messages postés
9060
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 août 2019
1609 -
De rien
Si c'est fini, peux tu mettre le sujet à résolu (en haut à droite, la roue dentée)
Bonne fin de journée
Commenter la réponse de ccm81
Messages postés
10977
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
23 août 2019
1374
0
Merci
Bonjour à vous deux

Une autre possibilité avec une fonction personnalisée à mettre dans un module de l'éditeur VBA :
Function trouver(chaine As Range, plage As Range)
a = chaine.Value
bon = "non"
For Each cell In plage
b = cell.Value
On Error Resume Next
r = Application.WorksheetFunction.Find(b, a)
If r > 0 Then
bon = "oui"
End If
Next
trouver = bon
End Function

Elle s'utilise après comme toute fonction Excel selon la syntaxe :
=trouver(cellule contenant la chaîne à tester;plage de la liste)
exemple : = trouver(A1;$C$1:$C$28)
les $ permettant d'étirer la formule vers le bas pour A2, A3 .....

Cdlmnt
Via
Commenter la réponse de via55
0
Merci
Bonjour,

Une autre solution, sans macro mais avec formule matricielle

En B1 : =SI(SOMME(SIERREUR(CHERCHE($C$1:$C$28;$A1);0))>0;"OUI";"non")
Attention formule matricielle à valider par Maj+Ctrl+Entrée, ce qui donnera {=SI(SOMME(SIERREUR(CHERCHE($C$1:$C$28;$A1);0))>0;"OUI";"non")}

Puis formule à tirer vers le bas

Cordialement
vdeux007
Messages postés
3
Date d'inscription
vendredi 19 avril 2019
Statut
Membre
Dernière intervention
22 avril 2019
-
Merci pour l'approche mais je pense que cela ne fonctionne qu'en comparant les valeurs complètes des deux cellules comparées, donc ce n'est pas efficient pour moi
Commenter la réponse de ALS35