Hi All, Im stuck again, need some expert advice.

I have multiple ListBoxes that need to be populated with multiple colums of data. So far I have code which only allows me to pull 1 at a time, I could just copy and paste the same code over and over but there must be an easier way than this?

Heres the code so far:

[VBA]
Private Sub UserForm_Initialize()
Dim ListItems As Variant, i As Integer
Dim SourceWB As Workbook
With Me.ListBox5
.Clear ' remove existing entries from the listbox
' turn screen updating off,
' prevent the user from seeing the source workbook being opened
Application.ScreenUpdating = False
' open the source workbook as ReadOnly
Set SourceWB = Workbooks.Open("\Rates\Rates.xls", _
False, True)
ListItems = SourceWB.Worksheets(1).Range("A2:A21").Value
' get the values you want
SourceWB.Close False ' close the source workbook without saving changes
Set SourceWB = Nothing
ListItems = Application.WorksheetFunction.Transpose(ListItems)
' convert values to a vertical array
For i = 1 To UBound(ListItems)
.AddItem ListItems(i) ' populate the listbox
Next i
.ListIndex = -1 ' no items selected, set to 0 to select the first item
Application.ScreenUpdating = True
End With

End Sub
[/VBA]