Private Sub UserForm_Initialize()
Dim O As Worksheet, Dl&, plage As Range, C&, W$
Set O = Sheets("Feuil1") 'définit l'onglet O
Dl = O.Cells(Rows.Count, 1).End(xlUp).Row
Set plage = O.Range("A3:bg" & Dl)
For C = 1 To plage.Columns.Count: W = W & " " & Int(O.Cells(1, C).Width) + 1: Next
W = Replace(Trim(W), " ", ";")
With ListBox1
.ColumnCount = plage.Columns.Count
.ColumnWidths = W
.List = plage.Value
End With
End Sub