Function ListeFiltre(r As Range) As String
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
For Each r In r
If Not r.Rows.Hidden And CStr(r) <> "" Then d(r.Value) = ""
Next
ListeFiltre = Join(d.keys, " - ") 'concaténation
End Function
=INDEX(E5:E100;EQUIV(1;(SOUS.TOTAL(3;INDIRECT("E"&LIGNE(5:100))));0))
Function ListeFiltre(r As Range) As String
Dim d As Object
Set d = CreateObject("Scripting.Dictionary")
d.CompareMode = vbTextCompare 'la casse est ignorée
For Each r In r
If Not r.Rows.Hidden And CStr(r) <> "" Then d(r.Value) = ""
Next
ListeFiltre = Join(d.keys, " - ") 'concaténation
End Function