For the first part try this.
Private Sub UserForm_Initialize()
Dim I As Long
'Macro Purpose: To populate a multi-column listbox with data from
' a worksheet range
Dim lbtarget As msforms.ListBox
Dim rngSource As Range
'Set reference to the range of data to be filled
With Worksheets("Waiting list")
Set rngSource = Worksheets("Waiting list").Range("A2:E" & .Range("A" & Rows.Count).End(xlUp).Row)
End With
'Fll the listbox
Set lbtarget = Me.ListBox1
With lbtarget
'Determine number of columns
.ColumnCount = 5
'Set column widths
.ColumnWidths = "100;20;50;50;20"
'Insert the range of data supplied
.List = rngSource.Cells.Value
For I = 0 To .ListCount - 1
.List(I, 4) = Trim(rngSource.Cells(I + 1, 5).Text)
Next I
End With
End Sub
Not sure about the second part, what do you want to base the column widths on?
Bookmarks