Private Sub worksheet_activate()
Dim ncol%, tablo, nlig&, resu(), i&, x$, j&, n&
ncol = 4 'nombre de colonnes de destination, à adapter
With Feuil1.[A1].CurrentRegion
tablo = .Resize(, 2) 'matrice, plus rapide
nlig = Application.Ceiling(Application.Sum(.Columns(2)) / ncol, 1)
ReDim resu(1 To nlig, 1 To ncol)
End With
For i = 1 To UBound(tablo)
x = tablo(i, 1)
For j = 1 To tablo(i, 2)
resu(1 + Int(n / ncol), 1 + n Mod ncol) = x
n = n + 1
Next j, i
'---restitution---
If FilterMode Then ShowAllData 'si la feuille est filtrée
With [A1] '1ère cellule de restitution, à adapter
.Resize(nlig, ncol) = resu
.Resize(nlig, ncol).Borders.Weight = xlThin 'bordures
.Offset(nlig).Resize(Rows.Count - nlig - .Row + 1, ncol).Delete xlUp 'RAZ en dessous
End With
With UsedRange: End With 'actualise la barre de défilement verticale
End Sub