Sub Objectif()
Dim dest As Range, t, i&, n&, resu(), j%
Set dest = [J2] '1er titre de la plage de destination
t = [A1].CurrentRegion.Offset(2).Resize(, 7)
For i = 1 To UBound(t) - 2
n = n + 1
ReDim Preserve resu(1 To 7, 1 To n)
For j = 1 To 7: resu(j, n) = t(i, j): Next
While resu(7, n) > 10
n = n + 1
ReDim Preserve resu(1 To 7, 1 To n)
For j = 1 To 7: resu(j, n) = resu(j, n - 1): Next
resu(7, n) = resu(7, n - 1) - 10: resu(7, n - 1) = 10
resu(6, n) = resu(6, n - 1) + 1
Wend
Next
'---transposition---
If n Then
ReDim t(1 To n, 1 To 7)
For i = 1 To n
For j = 1 To 7
t(i, j) = resu(j, i)
Next j, i
If FilterMode Then ShowAllData 'si la feuille est filtrée
dest(2).Resize(n, 7) = t
End If
'---RAZ sous le tableau---
dest(2).Offset(n).Resize(Rows.Count - n - dest.Row, 7).ClearContents
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub