1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| Sub transposée()
Dim origin As Range
Dim target As Range
With Worksheets("dataBase")
Set origin = .Range("E1")
For i = 0 To .Rows(1).Find("*", , , , , xlPrevious).Column - 4 Step 2
For j = 1 To .Columns(1).Find("*", , , , , xlPrevious).Row - 1
With Worksheets("Transpose")
Set target = .Columns(1).Find("*", , , , , xlPrevious).Offset(1, 0)
If IsNumeric(Right(origin.Offset(0, i), 2)) Then
target = Mid(origin.Offset(0, i), 3, 1)
target.Offset(0, 1) = Right(origin.Offset(0, i), 2)
target.Offset(0, 2) = Worksheets("dataBase").Cells(origin.Offset(j, 0).Row, 1)
target.Offset(0, 3) = Worksheets("dataBase").Cells(origin.Offset(j, 0).Row, 2)
target.Offset(0, 4) = origin.Offset(j, i)
target.Offset(0, 5) = origin.Offset(j, i + 1)
End If
End With
Next j
Next i
End With
End Sub |