Scanner "aaaPSGbbb" pour renvoyer "PSG"

Bonjour à tous,

Je souhaite que dans "A1", si une chaîne de caractère est identique à une chaîne de caractère dans ma liste de fournisseur, alors renvoie dans "A2" le nom de mon fournisseur présent dans ma liste.

Ce code est:

Function nf(s, lf)

End Function

Le problème, c'est que si mon libellé fait apparaître "fcbook" pour "Facebook" et qu'il y a dans ma liste "CB" pour carte bancaire,

alors, la formule me renvoie "CB" et cela m'induis en erreur lors de mon analyse.

On pourrait penser que si le fournisseur est contenu entre 2 chaînes de caractères non vide, alors ne renvoie rien.

Je vous remercie d'avance pour l'aide que vous m'apportez, et vous en suis très reconnaissant.

Bonjour,

une proposition (basée sur la recherche d'un mot complet et non sur une partie de mot) ceci résout le problème de CB dans fcbook, mais ne permettra pas de déduire que fcbook correspond en réalité à facebook, pour cela il faudra d'autres algorithmes.

Function nf(s, lf)
'renvoie la chaine de la liste lf, trouvée dans s
'
    t = Split(UCase(s), " ")
    For Each fournisseur In lf
        fournisseur = UCase(fournisseur)
        For i = LBound(t) To UBound(t)
            If fournisseur <> "" Then
                If t(i) = fournisseur Then nf = fournisseur: Exit Function
            End If
        Next i
    Next
    'nf = CVErr(xlErrNA)
    nf = ""
End Function
Rechercher des sujets similaires à "scanner aaapsgbbb renvoyer psg"