Prezado Ghost_jlp,
Muito obrigado pela sua ajuda! Aplausos.
Fiz algumas alterações e funcionou perfeitamente:
Criei duas subs e mantive a function:
A FiltroImc é colocada no keyUp da ImageCombo passando como parâmetro o objeto e o keyCode.
A TextoImc é colocada no LostFocus da ImageCombo para que mesmo saindo utilizando o enter (eu transformo o enter em tab) o item seja selecionado.
Seguem as funções como colaboração para as próximas dúvidas!
Muito Obrigado!
Felipe Cabrera
********************************************************
Sub FiltroImc(ByRef xImagecombo As ImageCombo, Keycode As Integer)
Dim idx As Long, tamanho As Long
With xImagecombo
If (Asc(UCase(Chr(Keycode))) >= 65 And Asc(UCase(Chr(Keycode))) <= 90) Or (Chr(Keycode) >= 0 And Chr(Keycode) <= 9) Or Keycode = vbKeyBack Then
If Keycode = vbKeyBack Then If .Text = "" Then Exit Sub
idx = ImageC(xImagecombo, .Text)
tamanho = Len(.Text)
If idx > 0 Then
.ComboItems(idx).Selected = True
.SelStart = tamanho - (IIf((Keycode = vbKeyBack), 1, 0))
.SelLength = Len(.Text) - (IIf((Keycode = vbKeyBack), 0, tamanho))
End If
If Keycode = vbKeyBack Then If .SelLength = Len(.Text) Then .Text = ""
End If
End With
End Sub
********************************************************
Public Function ImageC(ByVal xCombo As ImageCombo, ByVal sTexto As String) As Long
Dim lItens As Long
Dim i As Integer
For i = 1 To xCombo.ComboItems.Count
If InStr(1, xCombo.ComboItems(i), xCombo.Text, vbTextCompare) = 1 Then
ImageC = i
Exit For
End If
Next i
End Function
********************************************************
Sub TextoImc(xImagecombo As ImageCombo)
Dim i As Integer
For i = 1 To xImagecombo.ComboItems.Count
If xImagecombo.ComboItems(i).Text = xImagecombo.Text Then
xImagecombo.ComboItems(i).Selected = True
Exit For
End If
Next i
End Sub
********************************************************