Option Compare Text
Sub test()
Dim Gen As New Dictionary, Col As New Dictionary
'Dim t, n&, tot&, r(), s()
Dim i&, j&, k&, t, clef, toutes
Application.ScreenUpdating = False
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData
Columns("e:e").Clear
Gen.CompareMode = TextCompare
Col.CompareMode = TextCompare
For j = 1 To 4
toutes = toutes & Chr(1) & j
Col.RemoveAll
k = Cells(Rows.Count, j).End(xlUp).Row
t = Cells(1, j).Resize(k)
For i = 1 To k
clef = CStr(t(i, 1))
If clef <> "" Then
If Not Col.Exists(clef) Then
Col.Add clef, ""
Gen(clef) = Gen(clef) & Chr(1) & j
End If
End If
Next i
Next j
For Each clef In Gen.Keys
If Gen(clef) = toutes Then Gen.Remove clef
Next clef
If Gen.Count = 0 Then MsgBox "Tous les élément sont dans toutes les colonnes.": Exit Sub
ReDim t(1 To Gen.Count, 1 To 1): i = 0
For Each clef In Gen.Keys: i = i + 1: t(i, 1) = clef: Next
Columns("e:e").Resize(Gen.Count) = t
If Gen.Count > 1 Then Columns("e:e").Resize(Gen.Count).Sort key1:=Range("e1"), order1:=xlAscending, Header:=xlNo, MatchCase:=False
Columns("e:e").Resize(Gen.Count).HorizontalAlignment = xlCenter
Columns("e:e").Resize(Gen.Count).Borders.LineStyle = xlContinuous
End Sub