I have had a look, this is what i have come up with:
Dim NmRng As Range
Dim NmVar As Variant
Private Sub UserForm_Initialize()
Set NmRng = Sheet1.Range("A2:A" & Sheet1.Range("A" & Rows.Count).End(xlUp).Row).Cells
NmVar = NmRng
With Me.ComboBox1
.ListRows = 30
.MatchEntry = fmMatchEntryNone
.List = NmVar
End With
End Sub
Private Sub ComboBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim x As Long, y As Long, newNmVar() As String
y = 1
With Me.ComboBox1
.DropDown
On Error GoTo errHand
For x = 1 To UBound(NmVar)
If Left(UCase(NmVar(x, 1)), Len(.Text)) = UCase(.Text) Then
ReDim Preserve newNmVar(y)
newNmVar(y) = NmVar(x, 1)
y = y + 1
End If
Next x
.List = newNmVar()
Exit Sub
End With
errHand:
Me.ComboBox1.Clear
End Sub
Launch Form .xlsm
Hope this helps