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

Résolu
vdeux007 Messages postés 3 Statut Membre -  
ccm81 Messages postés 11033 Statut Membre -
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.

3 réponses

  1. ccm81 Messages postés 11033 Statut Membre 2 434
     
    Bonjour

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

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