Re,
Met ce code dans une module VBA et fais exécuter cette macro :
Sub Concatener()
[C5] = ConcatPlage(Range("b5:b23"), "@", ";")
End Sub
Function ConcatPlage(plage As Range, contenant As String, séparateur As String) As String
Dim rep As String, c As Range
For Each c In plage
If InStr(c.Value, contenant) > 0 Then
rep = rep & c.Value & séparateur
End If
Next c
ConcatPlage = Left(rep, Len(rep) - Len(séparateur))
End Function