Function Extraire_3_mots(colonne As Range, ordre&) As String
Dim tablo, i&, s, n&
tablo = Intersect(colonne, colonne.Parent.UsedRange) 'matrice, plus rapide
For i = 1 To UBound(tablo)
s = Split(Application.Trim(Replace(tablo(i, 1), "-", " ")))
If UBound(s) = 2 Then
n = n + 1
If n = ordre Then Extraire_3_mots = tablo(i, 1): Exit Function
End If
Next
End Function