Hola de nuevo, sabes el programa funciona bien, pero hay algunos datos que se repite la primera letra como consalud y cigna, como hago para que al ingresar la siguiente letra todo el otro dato, y otra pregunta el keyascci 8 a que función corresponde, gracias
Bien la idea de la función consiste en teclear hasta la intentar que distinga las letras si quieres obtener cigna pulsa ci y si quieres obtener consalud pusa co y así si quisienras sacar consuegra pulsarías cons el keyascii = 8 es la tecla de borrado, si utilizas la función como t estoy indicando si borras una letra es necesario recuperar la cadena de búsqueda anterior a la pulsación de la ultima letra Saludos, si deseas que la función realice otra cosa dime exactamente que Saludos
Amigo sigo con el mismo problema, tengo el combo lleno desde el 00 al 10 seguidos de un nombre, cuando presiono 0 me aparcece 00, y cuando presiono 01 me aparece 10.. Acá esta el código como lo deje el que me mandaste, para el código del formulario hice lo siguiente: Private Sub Cmb_EntidadSalud_Change() LocalizaCombo Cmb_EntidadSalud, Cmb_EntidadSalud.Text Cmb_EntidadSalud.SelStart = Len(sTestigo) Cmb_EntidadSalud.SelLength = Len(Cmb_EntidadSalud.Text) End Sub Private Sub Cmb_EntidadSalud_KeyPress(KeyAscii As Integer) If Cmb_EntidadSalud.Text <> "" Then If KeyAscii = 8 Then Cmb_EntidadSalud.Text = Mid(sTestigo, 1, Len(sTestigo) - 1) End If End If End Sub Y Cree un modulo y es el siguiente: Public Sub LocalizaCombo(ByRef mYcmb As ComboBox, sTexto As String) Dim icount As Integer If mYcmb.ListCount > 0 Then If sTexto <> "" Then For icount = 0 To mYcmb.ListCount - 1 If UCase(mYcmb.List(icount)) Like UCase(sTexto) & "*" Then mYcmb.ListIndex = icount Exit For End If Next icount Else mYcmb.Text = "" End If End If sTestigo = sTexto Debug.Print sTestigo End Sub Ojalas me puedas ayudar de antemano muchas gracias
Bien al pasar el código que te mande te has olvidado de declarar la variable stestigo en tu modulo como publica el modulo debes dejarlo así. Public sTestigo As String Public Sub LocalizaCombo(ByRef mYcmb As ComboBox, sTexto As String) Dim icount As Integer If mYcmb.ListCount > 0 Then If sTexto <> "" Then For icount = 0 To mYcmb.ListCount - 1 If UCase(mYcmb.List(icount)) Like UCase(sTexto) & "*" Then mYcmb.ListIndex = icount Exit For End If Next icount Else mYcmb.Text = "" End If End If sTestigo = sTexto End Sub