Rechercher si un des mots est present dans une chaine

Bonjour,

j'ai une cellule par exemple A1 qui contient une chaine de caractères ("il est en bas de l'échelle.")

je dois tester si un des mots (haut, bas, droite, gauche) est présent dans la chaine de caractères et retourner une valeur suivant le mot trouvé (haut=1, bas=2, droite=3, gauche=4) . J'ai fais un essai avec "if" mais ça fait trop de lignes pour tester si un des mots est présent.

Merci d'avance pour vos réponses.

Bonjour,

Une proposition

=SI(NB.SI(A1;"*haut*")>0;1;SI(NB.SI(A1;"*bas*")>0;2;SI(NB.SI(A1;"*droite*")>0;3;SI(NB.SI(A1;"*gauche*")>0;4;""))))

A+

Merci frangy c'est impeccable mais j’ai oublié de préciser que je veux l'utiliser dans une macro.

Tu veux utiliser une macro pour traiter une seule cellule ???

Il serait préférable que tu joignes un fichier avec des données représentatives et quelques explications.

A+

Ce sera pour traiter plusieurs cellules, mais pour l'instant elles n'ont pas encore été définis. C'est en prévision de ce que je pourrait faire.

Une équivalence avec un code VBA

    If Range("A1").Value Like "*haut*" Then
        Range("B1").Value = 1
    ElseIf Range("A1").Value Like "*bas*" Then
        Range("B1").Value = 2
    ElseIf Range("A1").Value Like "*droite*" Then
        Range("B1").Value = 3
    ElseIf Range("A1").Value Like "*gauche*" Then
        Range("B1").Value = 4
    Else
        Range("B1").Value = ""
    End If

A+

Merci beaucoup frangy.

Rechercher des sujets similaires à "rechercher mots present chaine"