Option Explicit
Option Compare Text
Sub Efface_v2()
Dim tablo, i&, j&, appli, p&
With ActiveSheet
tablo = .Range("a1:n" & .Cells(.Rows.Count, "a").End(xlUp).Row).Value
For i = 1 To UBound(tablo)
For j = 5 To UBound(tablo, 2)
If Len(Trim(tablo(i, j))) > 0 Then
p = InStr(1, tablo(i, j), ".", vbTextCompare)
If p = 0 Then
appli = Trim(tablo(i, j))
Else
appli = Left(tablo(i, j), p - 1)
End If
If (Not (tablo(i, 1) Like "*_" & appli & "*") And _
Not (tablo(i, 1) Like "*" & appli & "_*")) And _
Not (tablo(i, 1) = appli) Then tablo(i, j) = Empty
Else
tablo(i, j) = Empty
End If
Next j
Next i
.Range("a1").Resize(UBound(tablo), UBound(tablo, 2)) = tablo
End With
End Sub