Private Sub Worksheet_Activate()
Dim tablo, i&, resu(), j&, n&, k%
tablo = Sheets("Feuil1").[A1].CurrentRegion.Resize(, 19)
ReDim resu(1 To Rows.Count, 1 To 17)
For i = 2 To UBound(tablo)
For j = 1 To Val(tablo(i, 14))
n = n + 1
For k = 1 To 17
resu(n, k) = tablo(i, IIf(k > 14, k + 2, k))
Next k
resu(n, 14) = "<25m"
Next j
For j = 1 To Val(tablo(i, 15))
n = n + 1
For k = 1 To 17
resu(n, k) = tablo(i, IIf(k > 14, k + 2, k))
Next k
resu(n, 14) = "25-100m"
Next j
For j = 1 To Val(tablo(i, 16))
n = n + 1
For k = 1 To 17
resu(n, k) = tablo(i, IIf(k > 14, k + 2, k))
Next k
resu(n, 14) = ">100m"
Next j, i
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A2] '1ère cellule de destination, à adapter
If n Then .Resize(n, 17) = resu
.Offset(n).Resize(Rows.Count - n - .Row + 1, 17).ClearContents 'RAZ en dessous
End With
End Sub