Function UnionPlage(ref As Range, plage As Range) As Range
Dim colonne As Range, i&
Set colonne = Intersect(ref.EntireColumn, plage.EntireRow).Cells
For i = 1 To plage.Rows.Count
If colonne(i) = ref Then Set UnionPlage = Union(IIf(UnionPlage Is Nothing, plage.Rows(i), UnionPlage), plage.Rows(i))
Next
End Function