Private Sub Workbook_Open()
Dim P As Range, nlig&, ncol%, n%
Set P = Sheets("INPUT DATA").[A3].CurrentRegion
nlig = P.Rows.Count - 1
If nlig Then Set P = P.Offset(1).Resize(nlig)
ncol = P.Find("*", , xlValues, , xlByColumns, xlPrevious).Column - 4
If ncol < 1 Then ncol = 0
Application.ScreenUpdating = False
With Sheets("OUTPUT DATA")
If .FilterMode Then .ShowAllData 'si la feuille est filtrée
With .[A3] '1ère cellule de destination
For n = 0 To ncol - 1
P.Columns(1).Copy .Cells(1).Offset(n * nlig)
P.Columns(4).Copy .Cells(1, 2).Offset(n * nlig)
P(0, n + 5).Copy .Cells(1, 3).Offset(n * nlig).Resize(nlig)
P.Columns(n + 5).Copy .Cells(1, 4).Offset(n * nlig)
With .Cells(1).Offset(n * nlig).Resize(nlig, 4)
.Borders.LineStyle = xlNone
.BorderAround Weight:=xlThin 'pourtour
End With
Next
.Offset(nlig * ncol).Resize(Rows.Count - nlig * ncol - .Row + 1, 4).Delete xlUp 'RAZ en dessous
End With
.Columns.AutoFit 'ajustement largeurs
With .UsedRange: End With 'actualise la barre de défilement verticale
End With
End Sub