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