¿Buscar en una base de datos con una palabra?

Tengo una lista de productos de una ferretería, quiero colocar una fórmula buscar v en base al producto para que me arroje el precio, es decir al elegir un producto de una lista desplegable me arroje el precio, hasta ahí voy bien pero lo que necesitaría es si es posible ir escribiendo por ejemplo destornillador y me vaya generando unalista con todos los destornilladores para selleccionar el que deseo

1 Respuesta

Respuesta
1

En estos casos lo que necesitas utilizar son controles de formulario o de control activex o crear un userform.

Si creas un userform puedes poner un textbox y un listbox, entonces cuando empieces a escribir algo en el textbox, en el listbox aparecerán todas las coincidencias.

Desde luego, cuando aparezcan las coincidencias en el listbox, también habría que hacer un código para que lo que selecciones se pase a la hoja o realices lo que necesitas.

Dime si quieres utilizar esta opción y te ayudo con el código.

Si me pat3ce buena idea. Que datos necesitaría?

Pero Yo no entiendo nada de formularios ni list Box ni textos

Envíame tu archivo y te empiezo a preparar un userform

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Marcelo Obregón

Ahi le envioe el mail

Buen día.  Perdón que moleste era para saber si le había llegado mi mail

Ya recibí el correo, en la primera oportunidad lo reviso

Te anexo el código

Dim cargando, h1, h2, col, fil
'
Private Sub ComboBox1_Change()
'Por.Dante Amor
    Application.ScreenUpdating = False
    If cargando = True Then Exit Sub
    'Set h2 = Sheets("hoja2")            'hoja de nombres
    'col = "A"                           'columna de nombres
    'fil = 2                             'fila inicial
    Label1.Caption = ""
    Label2.Caption = ""
    cargando = True
    dato = ComboBox1
    ComboBox1.Clear
    For i = fil 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)
        End If
    Next
    ComboBox1 = dato
    '
    'Se activa otro control para que aparezca el combo completo
    CommandButton1. SetFocus
    ComboBox1. SetFocus
    ComboBox1. DropDown
    If ComboBox1.ListIndex > -1 Then
        Set b = h2.Columns(col).Find(ComboBox1.Value, lookat:=xlWhole)
        If Not b Is Nothing Then
            fila = b.Row
            Label1.Caption = h2.Cells(fila, "A").Value
            Label2.Caption = h2.Cells(fila, "C").Value
        End If
    End If
    '
    Application.ScreenUpdating = True
    cargando = False
End Sub
'
Private Sub CommandButton1_Click()
    If ComboBox1.Value = "" Or ComboBox1.ListIndex = -1 Then
        MsgBox "Selecionar un producto"
        ComboBox1.SetFocus
        Exit Sub
    End If
    '
    Set b = h2.Columns(col).Find(ComboBox1.Value, lookat:=xlWhole)
    If Not b Is Nothing Then
        fila = b.Row
        u = h1.Range("E" & Rows.Count).End(xlUp).Row + 1
        h1.Cells(u, "E").Value = h2.Cells(fila, "A").Value
        h1.Cells(u, "F").Value = h2.Cells(fila, "B").Value
        h1.Cells(u, "G").Value = h2.Cells(fila, "C").Value
    End If
    ComboBox1.Value = ""
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h1 = Sheets("Buscador")
    Set h2 = Sheets("Base de Datos")            'hoja de nombres
    col = "B"                           'columna de nombres
    fil = 2                             'fila inicial
    For i = fil To h2.Range(col & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem h2.Cells(i, col)
    Next
End Sub

Abre el formulario, captura datos en el combo, automáticamente te mostrará las coincidencias.


'.[Sal u dos. Dante Amor. No olvides valorar la respuesta. 

Te envíe un mail con una duda muy importante

Con gusto te ayudo con todas tus peticiones.

Valora esta respuesta y crea una nueva.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas