Se puede ejecutar al activar la hoja, al entrar al control, al salir de otro control, al actualizar la hoja Datos... depende de lo que tengas en mente para esta hoja.
Private Sub Worksheet_Activate()
'x Elsamatilde
'llena la lista con valores 'no vacíos' y ordenados de hoja Datos, col E
Application.ScreenUpdating = False
ListBox1.Clear: Range("G11") = ""
'copia col E en rgo auxiliar para ordenar
Sheets("Datos").Range("E1:E" & Sheets("Datos").Range("E" & Rows.Count).End(xlUp).Row).Copy Destination:=ActiveSheet.Range("AA1")
Application.CutCopyMode = False
ActiveWorkbook.ActiveSheet.Sort.SortFields.Clear
ActiveWorkbook.ActiveSheet.Sort.SortFields.Add Key:=Range("AA2:AA" & Range("AA" & Rows.Count).End(xlUp).Row), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.ActiveSheet.Sort
.SetRange Range("AA1:AA" & Range("AA" & Rows.Count).End(xlUp).Row)
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
'llena listbox con valores <> vacíos
For i = 2 To Range("AA" & Rows.Count).End(xlUp).Row
If Range("AA" & i) <> "" Then ListBox1.AddItem Range("AA" & i)
Next i
End Sub
Sdos!