Rechercher une chaine de caractère et afficher un résultat

Bonjour,

j'ai besoin de votre aide, je me heurte à un problème dont je ne trouve pas la solution malgré mes recherches.

Je désire rechercher dans la cellule A1 une chaine de caractères par rapport à une matrice et affricher le résultat correspondant dans la cellule A2

Exemple:

A1: Bonjour Monsieur Banquier Truc machin bidule

A2: Banque

Matrice:

Col1: Col2:

Test Essai

Vroumm Voiture

Bip Bruit

Banquier Banque

Pouvez vous m'aider ?

J'ai essayé recherchv, index et equiv mais je n'arrive pas à mes fins.

Merci.

Cordialement.

Bonjour,

une solution via une fonction personnalisée

function à mettre dans un module VBA

Function rechercheS(source, matrice, position)
    t = Split(source, " ")
    For Each v In t
    Set re = matrice.Find(v, lookat:=xlWhole)
    If Not re Is Nothing Then rep = rep & re.offset(, position) & ", "
    Next
    If rep <> "" Then rechercheS = Left(rep, Len(rep) - 2)
End Function

dans excel utiliser la fonction

=rechercheS(cellule source, matrice, n° de colonne relatif)

exemple

=rechercheS(A1,C1:C4,1)

recherche dans C1:C4 les mots se trouvant dans A1 et retourne le mot correspondant trouvé dans la colonne D.

si plusieurs mots de A1 sont présents dans C1:C4, la fonction donnera une liste de mots trouvés séparés par une ,

Merci pour ta réponse mais je n'arrive pas à la faire fonction surtout que mon exemple n'est pas caler sur mes colonnes réelles.

Voici mon fichier excel pour exemple.

64exemple.xlsx (8.44 Ko)

Peux-tu m'expliquer un peu ta formule et ton code VBA ?

re-bonjour,

j'ai adapté la fonction pour la faire mieux correspondre à tes besoins

Function rechercheS(source, matrice, position)
    source = UCase(source) ' on met la source en majuscule
    For Each t In matrice 'on prend chaque cellule de la matrice
    'on recherche le mot de la cellule t, on le met en majuscule et on regarde s'il est présent dans la source
    ' si oui, on renvoie le mot situé dans la colonne en position "position" par rapport à  la matrice.
        If InStr(source, UCase(t)) <> 0 Then rechercheS = t.Offset(, position): Exit Function
    Next t
    rechercheS = ""
End Function

voici ton fichier avec un exemple d'utilisation de la fonction

72auronfr.xlsm (13.49 Ko)

Je te remercie grandement mon problème est résolu et j'ai compris ton code VBA !

Rechercher des sujets similaires à "rechercher chaine caractere afficher resultat"