Option Explicit
Public Function Cat(ByVal Phrase As String) As String
Dim MS_Range As Range
Dim Cell As Range
Dim Elem As Variant
Cat = vbNullString
Set MS_Range = Sheets("Param").ListObjects("Param").ListColumns("MotClef").DataBodyRange
For Each Elem In Split("- , . ;'")
Phrase = Replace(Phrase, Elem, " ")
Next
For Each Elem In Split(Phrase)
' on n'utilise pas le Find car erreur 50290 aléatoire ...
For Each Cell In MS_Range
If Elem Like Cell Then
Cat = Cell.Offset(0, -1)
Exit Function
End If
Next
Next
End Function