Búsqueda en Combobox activex creado en Excel introduciendo cualquier parte de la palabra

Necesito lo siguiente

Ejemplo:

Si tenemos estos datos;

  1. Auto Caravana
  2. Torre
  3. Carro
  4. Bote

Si en el Combobox escribo “car” que me permita seleccionar lo siguiente:

2 Respuestas

Respuesta
1

La respuesta a mis plegarias.

Respuesta
3

Realiza los siguientes pasos para que la macro funcione:

Paso 1:

Selecciona tu combo, entra a la ficha Programador, presiona el icono Modo diseño, selecciona Propiedades, y en la ventana de propiedades Selecciona en la propiedad MatchEntry la opción: 2 - fmMatchEntryNone. Después cierra la ventana propiedades.


Paso 2.

Pon la siguiente macro en los eventos de worksheet

Dim delchange, cargando
Private Sub ComboBox1_Change()
'Por.Dante Amor
    cargando = False
    cargar
    delchange = True
    ComboBox1.DropDown
    delchange = False
End Sub
'
Private Sub ComboBox1_DropButtonClick()
'Por.Dante Amor
    If delchange Then Exit Sub
    cargando = False
    cargar
    delchange = False
End Sub
'
Sub cargar()
'Por.Dante Amor
    If cargando Then Exit Sub
    cargando = True
    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")
    ComboBox1.ListFillRange = ""
    h2.Cells.Clear
    col = "A"
    If ComboBox1 = "" Then
        h1.Range("A2:A" & h1.Range("A" & Rows.Count).End(xlUp).Row).Copy h2.[A2]
    Else
        j = 2
        For i = 2 To h1.Range(col & Rows.Count).End(xlUp).Row
            If InStr(1, h1.Cells(i, col), ComboBox1) > 0 Then
                h1.Cells(i, col).Copy h2.Cells(j, "A")
                j = j + 1
            End If
        Next
    End If
    ComboBox1.ListFillRange = h2.Name & "!A2:A" & h2.Range("A" & Rows.Count).End(xlUp).Row
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. Del lado derecho copia la macro

Paso 3.

Crea una hoja llamada "Hoja2" o el nombre que tu quieras.


Paso4.

Cambia en la macro en estas líneas, "Hoja1" por el nombre de la hoja que tiene los datos que se van a cargar en el combo; "Hoja2" por el nombre de la hoja nueva que creaste.

    Set h1 = Sheets("Hoja1")
    Set h2 = Sheets("Hoja2")

Paso 5.

Cambia en la macro en esta línea, la letra de la columna que tiene los datos para cargar en el combo:

col = "A"

Paso 6.

Cambia en la macro "Combobox1" por el nombre del combo que tengas, si se llama "Combobox1", entonces no tienes que cambiar.


Paso 7.

Sal del modo diseño, presiona nuevamente el icono Modo Diseño.


Captura las letras que quieras en el combo y te mostrará los datos que contengan esas letras.

Si quieres que te aparezcan todos los datos, borra el contenido del combo.


Saludos. Dante Amor

Muchas gracias, solo una ultima cuestión si quiero que me haga lo mismo para un conjunto de 750 combobox. ¿Tengo qué copiar la misma Macro 750 veces personalizada para cada combobox?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas