Restringir la lista de valores de un combo conforme escribo en excel

Es una pregunta para Dante Amor

Me gustaría que conforme escribo un valor en el combo se me mostrara el desplegable con los valores del combo y se redujera el listado de valores mostrando solo los que coinciden con lo que escribo y así seleccionar uno. Si no coincide con ninguno escribo el valor y guardo.

Por ejemplo ahora mismo si en el combo CATEGORIA escribo "C" solo me aparece "Ciencias Aplicadas" cuando debería abrirse automáticamente el desplegable del combo mostrando "Ciencias Aplicadas, Ciencias Puras, Ciencias Sociales, Comic" porque son los valores que comienzan por "C" que es lo que he escrito.

Y si voy rellenando y poniendo "Ciencias" debería abrirse el desplegable y mostrar solo "Ciencias Aplicadas, Ciencias Puras, Ciencias Sociales" y ya no aparecer "Comic" por tanto.

Ésa sería la mecánica... Conforme a lo que escribo en el combo que se abriera automáticamente el desplegable restringiendo el listado de valores del combo en función de lo que escribo.

1 respuesta

Respuesta
1

H o l a:

Te anexo el código para actualizar la lista del combo mientras escribes.

Dim cargando
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
    If cargando = True Then Exit Sub
    cargarcombo "A", ComboBox1, ComboBox2
End Sub
'
Private Sub ComboBox2_Change()
'Por.Dante Amor
    If cargando = True Then Exit Sub
    cargarcombo "B", ComboBox2, ComboBox1
End Sub
'
Private Sub ComboBox3_Change()
'Por.Dante Amor
    If cargando = True Then Exit Sub
    cargarcombo "C", ComboBox3, ComboBox1
End Sub
'
Sub cargarcombo(col As String, combo As ComboBox, combo1 As ComboBox)
'Por.Dante Amor
    Set h3 = Sheets("CATALOGOS")
    cargando = True
    dato = combo
    combo.Clear
    For i = 2 To h3.Range(col & Rows.Count).End(xlUp).Row
        If Left(UCase(h3.Cells(i, col)), Len(dato)) = UCase(dato) Then
            combo.AddItem h3.Cells(i, col)
            j = j + 1
        End If
    Next
    combo = dato
    '
    'En esta parte se activa la lista
    Combo1. SetFocus
    Combo. SetFocus
    Combo. DropDown
    cargando = False
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas