Public Function Nettoyer(cellule As Range) As String
Dim tabStr, i As Integer, aEffacer As Variant, dejaEffacer As Boolean
'ajouter/enlever si nécessaire
aEffacer = Array("Le", "La", "Les", "L'", "Un", "D'", "Une", "Des")
dejaEffacer = False
tabStr = Split(Replace(cellule.Cells(1, 1), "'", " "), " ")
For i = LBound(tabStr) To UBound(tabStr)
Nettoyer = Nettoyer & IIf(i = LBound(tabStr), vbNullString, " ") & IIf(dejaEffacer = False And Contient(CStr(tabStr(i)), aEffacer), vbNullString, tabStr(i))
If Contient(CStr(tabStr(i)), aEffacer) Then dejaEffacer = True
Next i
End Function
Private Function Contient(mot As String, aEffacer As Variant) As Boolean
Dim i As Integer
Contient = False
For i = LBound(aEffacer) To UBound(aEffacer)
If UCase(Replace(aEffacer(i), "'", vbNullString)) = UCase(mot) Then Contient = True
Next i
End Function