Sub test2()
    Dim t(1 To 50000, 1 To 100) 'même dimension que dudu2 avec application transpose
    Set bench2 = New cBenchmark
    bench2.TrackByName "debut de transposition avec application transpose"
    t2 = Application.Transpose(t)
    bench2.TrackByName "fin de transposition avec application transpose"
    Dim tx(1 To 50000, 1 To 100) 'même dimension que dudu2 avec vba transpose version patricktoulon
     bench2.TrackByName "debut de transposition avec vba transpose version patricktoulon"
    t2 = TransposeXV1(tx)
    bench2.TrackByName "fin de transposition avec vba transpose version patricktoulon"
End Sub
Function TransposeXV1(t)
    'patricktoulon    V 1.2 -- 08/07/2021
    Dim y&, i&, C&, t2
    On Error Resume Next
    y = UBound(t, 2)
    On Error GoTo 0
    If y = 0 Then
        On Error GoTo 0
        ReDim t2(LBound(t) To UBound(t), LBound(t) To LBound(t))
    Else
        ReDim t2(LBound(t, 2) To UBound(t, 2), LBound(t) To UBound(t))
    End If
    For i = LBound(t) To UBound(t)
        If y = 0 Then
            t2(i, 1) = t(i)
        Else
            For C = LBound(t, 2) To UBound(t, 2): t2(C, i) = t(i, C): Next
        End If
    Next
    TransposeXV1 = t2
End Function