here's one way, possibly not 100% accurate.
Option Explicit
Private Sub UserForm_Initialize()
Dim rSource As Range
Dim ColCnt As Long
Dim i As Integer
Dim CW As String
'get the data source
Set rSource = Sheet1.Cells(1, 1).CurrentRegion
'number of columns of data
ColCnt = rSource.Columns.Count
CW = ""
'build the widths based on columns' widths on sheet
With Me.ListBox1
'populate Listbox
.List = rSource.Value
For i = 1 To ColCnt
CW = CW & rSource.Columns(ColCnt).Width & ";"
Next i
'number of columns in listbox
.ColumnCount = ColCnt
'set column widths
.ColumnWidths = CW
'nothing selected
.ListIndex = -1
End With
End Sub
Bookmarks