Sub Transposer()
Dim Plage As Range
Application.ScreenUpdating = False
Range(Cells(1, "i"), Cells(Rows.Count, Columns.Count)).ClearContents
Set Plage = Range(Range("A5"), Range("A5").End(xlDown))
Plage.Copy Range("K1")
Columns("K:K").Sort key1:=Columns("k"), Header:=xlNo
ActiveSheet.Range("K:K").RemoveDuplicates Columns:=1, Header:=xlNo
Range(Range("k1"), Range("k1").End(xlDown)).Copy
Range("L1").PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
Columns("K:K").Delete shift:=xlToLeft
Range(Range("C5"), Range("C5").End(xlDown)).Resize(, 2).Copy Range("I1")
Columns("I:J").Sort key1:=Columns("I"), Header:=xlNo
ActiveSheet.Range("I:J").RemoveDuplicates Columns:=1, Header:=xlNo
Range("I1:J1").Insert shift:=xlShiftDown
Range("k2").Formula = "=IF(COUNTIFS(" & Plage.Address(True, True) & "," & Range("K1").Address(True, False) & _
"," & Plage.Offset(, 2).Address(True, True) & "," & Range("I2").Address(False, True) & ")=0,"""",""X"")"
Range("k2").Copy Range("I1").CurrentRegion.Offset(1, 2).Resize(Range("I1").CurrentRegion.Rows.Count - 1, _
Range("I1").CurrentRegion.Columns.Count - 2)
Range("I1").CurrentRegion = Range("I1").CurrentRegion.Value
Range("I1").CurrentRegion.Offset(, 2).HorizontalAlignment = xlCenter
Application.ScreenUpdating = True
End Sub