Défi de comparaison de contenus entre deux colonnes de textes

Résolu
vdeux007 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   -
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.
A voir également:

3 réponses

ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
Bonjour

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

Cdlmnt
0
vdeux007 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
merci bcp pour la macro et le fichier joint. Nickel.
Bravo....
0
ccm81 Messages postés 10909 Date d'inscription   Statut Membre Dernière intervention   2 433
 
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
0
via55 Messages postés 14512 Date d'inscription   Statut Membre Dernière intervention   2 746
 
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
0
ALS35
 
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
0
vdeux007 Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
 
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
0

Discussions similaires