Option Explicit
Sub PrésentationColonnes()
Dim d As Object, c, i As Long, Tb
Set d = CreateObject("Scripting.Dictionary")
With Sheets("recap")
For Each c In Range("B2:B" & .[A65000].End(xlUp).Row)
d(c.Value) = d(c.Value) & c.Offset(0, -1) & "|"
Next c
End With
With Feuil2
.Range("I1").CurrentRegion.ClearContents
If d.Count > 0 Then
.Range("I1").Resize(, d.Count) = d.keys
i = 0
For Each c In d.items
Tb = Split(c, "|")
.Range("I2").Offset(, i).Resize(UBound(Tb)) = Application.Transpose(Tb)
i = i + 1
Next c
End If
End With
MsgBox "Traitement terminé!", vbInformation + vbOKOnly, "Process"
End Sub