Bonjour, voici un code qui fonctionne, mais attention il faut saisir uniquement dans la colonne B les mots cherchés et exclure les "le, de, la, etc..." en gros tous les mots parasites.
Mon code suis la logique suivante, il décompose tous les termes en se basant sur les espaces comme séparateur de la colonne B et va faire la même chose sur la colonne A, si il y a au moins un terme en commun il sauvegarde le numéro de la ligne.
Sub ChercheValeur()
Dim Ws As Worksheet
Dim PlageInit() As Variant, PlageCompar() As Variant
Dim DecompoInit() As String, DecompoCompar() As String
Dim MotInit As String, MotCompar As String
Dim DernLig As Long, PremLig As Long, i As Long, j As Long, x As Long, y As Long, cpt As Long
Dim ListAdr As String, Adr As String
Set Ws = ThisWorkbook.Worksheets("Feuil1")
PremLig = 2
DernLig = Ws.Range("A" & Ws.Rows.Count).End(xlUp).Row
PlageInit = Ws.Range("A" & PremLig & ":A" & DernLig).Value
DernLig = Ws.Range("B" & Ws.Rows.Count).End(xlUp).Row
PlageCompar = Ws.Range("B" & PremLig & ":B" & DernLig)
For i = LBound(PlageCompar) To UBound(PlageCompar)
DecompoCompar = Split(PlageCompar(i, 1), " ")
ListAdr = ""
For j = LBound(PlageInit) To UBound(PlageInit)
DecompoInit = Split(PlageInit(j, 1), " ")
cpt = 0
For x = LBound(DecompoCompar) To UBound(DecompoCompar)
MotCompar = DecompoCompar(x)
For y = LBound(DecompoInit) To UBound(DecompoInit)
MotInit = DecompoInit(y)
If MotCompar = MotInit Then cpt = cpt + 1
Next y
Next x
If cpt > 0 Then
Adr = "$A$" & j + PremLig - 1
If ListAdr = "" Then ListAdr = Adr Else ListAdr = ListAdr & ";" & Adr
End If
Next j
If ListAdr = "" Then Ws.Range("C" & i + PremLig - 1) = "N/A" Else Ws.Range("C" & i + PremLig - 1) = ListAdr
Next i
End Sub