Lista Desplegable con Filtro Tecleado

Estoy haciendo una macro en la cuál en una celda se presenta una Lista Desplegable.

El problema es que la lista tiene mas de 500 elementos y, si se desea escoger un elemento que comienza con "S" o "T", tengo que paginar hasta esa letra. Hay alguna forma de que tecleando las primeras letras, ¿la lista desplegable se vaya autolimitando a los elementos que inician con esas letras?

Con esto, por ejemplo, si busco seleccionar entre los elementos que comienzan con la palabra "silla", automáticamente, después de digitar "si", ¿la lista se limite solo a presentar los elementos que comienzan con las letras "si"?

Respuesta
1

En una lista de validación no es posible.

Pero ya que mencionaste una macro, es posible si pones un combobox de Control ActiveX en tu hoja.

Pon el siguiente código en tu hoja que tendrá el combobox, en la macro cambia "hoja2" por el nombre de la hoja donde tienes la lista de datos, también cambia "A" por la columna donde tienes la lista de datos.

Dim cargando
Private Sub ComboBox1_Change()
'Por.Dante Amor
    Application.ScreenUpdating = False
    If cargando = True Then Exit Sub
    Set h2 = Sheets("hoja2")
    col = "A"
    cargando = True
    dato = ComboBox1
    ComboBox1.Clear
    For i = 2 To h2.Range(col & Rows.Count).End(xlUp).Row
        If UCase(h2.Cells(i, col)) Like UCase(dato) & "*" Then
            ComboBox1.AddItem h2.Cells(i, col)
            'j = j + 1
        End If
    Next
    ComboBox1 = dato
    '
    'Se activa una celda para que aparezca el combo completo
    Range("Z1000"). Activate
    ComboBox1. Activate
    ComboBox1. DropDown
    '
    Application.ScreenUpdating = True
    cargando = False
End Sub

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja)
  4. En el panel del lado derecho copia la macro

Para llenar por primera vez el combobox, pon la siguiente macro en los eventos de ThisWorkbook, cambia "Factura" por el nombre de la hoja que tiene el combobox. Cambia "Hoja2" por la hoja que tiene la lista de datos y también la columna "A"

Private Sub Workbook_Open()
'Por.Dante Amor
    Sheets("Factura").Select
    Set h2 = Sheets("hoja2")
    col = "A"
    ActiveSheet.ComboBox1.Clear
    For i = 2 To h2.Range(col & Rows.Count).End(xlUp).Row
        ActiveSheet.ComboBox1.AddItem h2.Cells(i, col)
    Next
End Sub

Instrucciones para poner la macro en los eventos ThisWorkbook

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a ThisWorkbook
  4. En el panel del lado derecho copia la macro

Guardar tu libro, cierra el libro, vuelve a abrir el libro para que se cargue el combo, o bien, ejecuta la macro Workbook_Open directamente.

Ve al combobox y empieza a escribir letras, verás como la lista va cambiando.

.

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

.

Avísame cualquier duda

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas