Formulario para buscar con dos condiciones

Tengo un userform1 y una base de datos (hoja1) con productos. Lo que necesito es buscar un producto por el nombre del producto o por el nombre y la marca.

Ejemplo:

En la columna A de la hoja1 tengo los productos y en la columna B las marcas.

Supongamos que tengo varias "harina" y varias marcas de "harina"

Lo que quisera es en un textbox colocar el nombre del producto que quiero buscar "harina" y en otro textbox colocar la marca de la cual quiero me busque y que en un listbox me muestre los resultados.

2 respuestas

Respuesta
1

Pon el siguiente código en tu userform

Private Sub TextBox1_Change()
    Call Consultar
End Sub
Private Sub TextBox2_Change()
    Call Consultar
End Sub
'
Sub Consultar()
'Por Dante Amor
    Set h1 = Sheets("Hoja1")
    ListBox1.Clear
    For i = 1 To h1.Range("A" & Rows.Count).End(xlUp).Row
        If TextBox1.Value = "" Then t1 = h1.Cells(i, "A").Value Else t1 = TextBox1.Value
        If TextBox2.Value = "" Then t2 = h1.Cells(i, "B").Value Else t2 = TextBox2.Value
        If LCase(h1.Cells(i, "A").Value) Like LCase(t1) & "*" And _
           LCase(h1.Cells(i, "B").Value) Like LCase(t2) & "*" Then
            ListBox1.AddItem h1.Cells(i, "A").Value
            ListBox1.List(ListBox1.ListCount - 1, 1) = h1.Cells(i, "B").Value
            ListBox1.List(ListBox1.ListCount - 1, 2) = h1.Cells(i, "C").Value
            ListBox1.List(ListBox1.ListCount - 1, 3) = h1.Cells(i, "D").Value
        End If
    Next
End Sub


Pon tu Listbox de 4 columnas, se cargarán las columnas de la A a la D, puedes cargar hasta 10 columnas con el método AddItem. Si requieres más columnas, se tendría que realizar la carga de otra forma. Pero para lo que necesitas, creo que con esto es suficiente.


Funciona de la siguiente manera, empiezas a escribir en el Texbox1, por ejemplo capturas la letra "h", en el Listbox verás todos los productos que empiezan con "h" y te pondrá todas las marcas.

Si en el Textbox2 capturas la letra "s", en el Listbox verás los productos que empiezan con "h" pero solamente las marcas que empiezan con "s".

Puedes seguir escribiendo letras en cualquiera de los dos Textbox y en el Listbox verás las coincidencias.

O puedes empezar a escribir en el Textbox2 las marcas. La macro te busca las coincidencias sin importar si son mayúsculas o minúsculas.



'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 
'.[Avísame cualquier duda
Respuesta
1

¿Algo así es lo que tu necesitas?

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas