ExtendCombo



Private Sub Combo1_KeyPress(KeyAscii As Integer)
ComboBoxExtendedMatching Combo1, KeyAscii
End Sub

Sub ComboBoxExtendedMatching(cbo As ComboBox, KeyAscii As Integer, _
Optional CompareMode As VbCompareMethod = vbTextCompare)
Dim index As Long
Dim Text As String

' if user pressed a control key, do nothing

If KeyAscii <= 32 Then Exit Sub

' produce new text, cancel automatic key processing

Text = Left$(cbo.Text, cbo.SelStart) & Chr$(KeyAscii) & Mid$(cbo.Text, _
cbo.SelStart + 1 + cbo.SelLength)
KeyAscii = 0

' search the current item in the list

For index = 0 To cbo.ListCount - 1
If InStr(1, cbo.List(index), Text, CompareMode) = 1 Then
' we've found a match

cbo.ListIndex = index
Exit For
End If
Next

' if no matching item

If index = cbo.ListCount Then
cbo.Text = Text
End If

' highlight trailing chars in the edit area

cbo.SelStart = Len(Text)
cbo.SelLength = 9999

End Sub


(extendcombo.html)- by Paolo Puglisi - Modifica del 25/3/2019