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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| Sub Copie()
Dim Ws As Worksheet
Dim LastLig As Long, i As Long, n As Long, m As Long
Dim Nb As Integer, k As Integer, ki As Integer
Dim j As Byte
Dim DATA, RES()
Application.ScreenUpdating = False
With Worksheets("Données teruti")
LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
DATA = .Range("A2:Y" & LastLig)
End With
n = UBound(DATA, 1)
For i = 1 To n
Nb = Val(DATA(i, 11))
If i = 1 Then
ReDim RES(1 To 25, 1 To Nb)
Else
m = UBound(RES, 2)
ReDim Preserve RES(1 To 25, 1 To m + Nb)
End If
For k = 1 To Nb
For j = 1 To 25
If j < 14 Then
RES(j, m + k) = DATA(i, j)
Else
If DATA(i, j) <> "" Then
RES(j, m + k) = DATA(i, j)
DATA(i, j) = ""
Exit For
End If
End If
Next j
Next k
Next i
With Worksheets("pondération surface")
LastLig = .Cells(.Rows.Count, 1).End(xlUp).Row
.Range("A" & LastLig + 1).Resize(UBound(RES, 2), 25) = Application.Transpose(RES)
End With
End Sub |
Partager