In UserForm
Private Sub UserForm_Initialize()
Dim lb As msforms.ListBox
' // alternative method to pick up Worksheet data
Dim ar As Variant
ar = Worksheets("database1").Range("A1:M50000").Cells
'Place the array in the listbox
Set lb = Me.ListBox1
With lb
.ColumnCount = 23
' // pick up & hide the first Column of data
.ColumnWidths = "50;200;100;100;100;100;150;100;100;100;100;100;100;100;100;100;100;100;100;70;70;70;70"
.List = ar
End With
Public Sub UpdateList()
Dim ar As Variant
ar = Worksheets("database1").Range("A1:M50000").Cells
Me.ListBox1.List = ar
End Sub
In Worksheet database1
Private Sub Worksheet_Change(ByVal Target As Range)
'Edit as needed to prevent spurious updates
UserForm1.UpdateList
End Sub