¿Cómo filtrar un dato de una celda a un LISTBOX?

Espero que tengan un excelente día. Mi consulta es la siguiente:
Tengo un formulario con un txtbox en el cual voy a ingresar un nombre, al costado del textbox tengo un boton llamado Buscar, debajo del TextBox y el Boton buscar hay un LISTBOX.

Lo que quiero es que cuando ingreso un nombre en el TextBox y hago click en el boton Buscar, en el LISTBOX me aparezca El nombre, su puntaje de Semana1, de semana2, de semana3 y semana4.

(Los datos son de acuerdo al nombre que ingrese en el textbox)

Los datos estan en la hoja BASE DE DATOS, Aquí dejo un ejemplo:
INGRESO: Pedro Ramiro Benites (Pedro tiene un puntaje de semana1, semana2, semana3 y semana4)
LISTBOX: quiero me aparezca su nombre y su puntaje de las semanas mencionadas.

Respuesta
3

Te anexo el código, no mencionaste en cuáles columnas tienes la información, así que en el código estoy suponiendo que tienes los nombres en la columna "A" y las semanas en las columnas B, C, D y E, si son otras columnas cambia las letras en la macro.

Pon lo siguiente en el formulario

Private Sub CommandButton1_Click()
'Por.Dante Amor
    If TextBox1 = "" Then
        MsgBox "Ingresa un nombre", vbExclamation
        Exit Sub
    End If
    Set b = Columns("A").Find(TextBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        ListBox1.ColumnCount = 5
        ListBox1. Clear
        ListBox1. AddItem Cells(b.Row, "A")
        ListBox1. List(ListBox1.ListCount - 1, 1) = Cells(b.Row, "B")
        ListBox1. List(ListBox1.ListCount - 1, 2) = Cells(b.Row, "C")
        ListBox1. List(ListBox1.ListCount - 1, 3) = Cells(b.Row, "D")
        ListBox1. List(ListBox1.ListCount - 1, 4) = Cells(b.Row, "E")
    Else
        MsgBox "El nombre no existe", vbExclamation
    End If
End Sub

Saludos.Dante Amor

Recuerda valorar la respuesta.

Hola me sale búsqueda no encontrada para todos. :(

Tienes que poner el nombre exactamente como lo tienes en la celda.

Ejemplo, en la celda tienes esto:

Dante Amor

En el textbox tienes que poner:

Dante Amor

Además no me has dicho en cuál columna tienes los nombres

https://mega.co.nz/#!DQlV3JwS!2luV-cEjXa_6CiFRc_wNwz0SuU8h9jvMqOb-Q1dHogM

Lamento molestarte Dante, he subido el archivo para que lo descargues y aprecies a lo que me refiero.
Espero me puedas ayudar.
Gracias. 

No te preocupes.

Pero sigues sin decirme en cuál columna tienes los nombres.

¡Gracias! 
En la hojas BASE DE DATOS y en la columna B :)

Te anexo la macro, para que valga la pena y se utilice el listbox, le adicioné un ciclo para buscar varios registros; lo que tienes que hacer es poner en el textbox, por ejemplo, la palabra "alv" y la macro te pondrá en el listbox todos los nombres que tienen la palabra "alv"



Private Sub boton_buscar_Click()
'Por.Dante Amor
    If txt_nombre = "" Then
        txt_nombre.SetFocus
        MsgBox "Ingresa un nombre", vbExclamation
        Exit Sub
    End If
    ListBox1.Clear
    Set h = Sheets("BASE DE DATOS")
    Set r = h.Columns("B")
    Set b = r.Find(txt_nombre, lookat:=xlPart)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            ListBox1.AddItem Cells(b.Row, "B")
            ListBox1.List(ListBox1.ListCount - 1, 1) = Format(Cells(b.Row, "C"), "#0.00")
            ListBox1.List(ListBox1.ListCount - 1, 2) = Format(Cells(b.Row, "D"), "#0.00")
            ListBox1.List(ListBox1.ListCount - 1, 3) = Format(Cells(b.Row, "E"), "#0.00")
            ListBox1.List(ListBox1.ListCount - 1, 4) = Format(Cells(b.Row, "F"), "#0.00")
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    Else
        MsgBox "El nombre no existe", vbExclamation
    End If
End Sub

Te regreso el archivo con la macro funcionando

https://www.dropbox.com/s/467bem8ykqdmv5s/Proyecto%20de%20PRODUCCION%20NUEVO%20dam.xlsm?dl=0 


Saludos. Dante Amor

Recuerda cambiar la valoración de la respuesta.

¡Gracias Dante!
Ya cambie la valoración, muchas gracias por tu tiempo y tu ayuda.
Hasta luego.

Hola Dante te sigo molestando, mira funciona bien pero si me ubico en otra y activo el formulario, no me encuentra los datos, creo que solo esta para la hoja activa osea base de datos, :/ intente así pero nada...
Set h = Sheets("BASE DE DATOS").Active
Set r = Sheets("BASE DE DATOS").Columns("B")
Set b = r.Find(txt_nombre, lookat:=xlPart)

Help please.

Deberás crear una nueva pregunta para cada petición.

Disculpa, no leí bien tu comentario, hay que agregar h. en las instrucciones:

Por ejemplo, tenías esto:

ListBox1. AddItem Cells(b. Row, "B")

Debe quedar así:

ListBox1. AddItem h.Cells(b. Row, "B")

Private Sub boton_buscar_Click()
'Por.Dante Amor
    If txt_nombre = "" Then
        txt_nombre.SetFocus
        MsgBox "Ingresa un nombre", vbExclamation
        Exit Sub
    End If
    ListBox1.Clear
    Set h = Sheets("BASE DE DATOS")
    Set r = h.Columns("B")
    Set b = r.Find(txt_nombre, lookat:=xlPart)
    If Not b Is Nothing Then
        ncell = b.Address
        Do
            ListBox1.AddItem h.Cells(b.Row, "B")
            ListBox1.List(ListBox1.ListCount - 1, 1) = Format(h.Cells(b.Row, "C"), "#0.00")
            ListBox1.List(ListBox1.ListCount - 1, 2) = Format(h.Cells(b.Row, "D"), "#0.00")
            ListBox1.List(ListBox1.ListCount - 1, 3) = Format(h.Cells(b.Row, "E"), "#0.00")
            ListBox1.List(ListBox1.ListCount - 1, 4) = Format(h.Cells(b.Row, "F"), "#0.00")
            Set b = r.FindNext(b)
        Loop While Not b Is Nothing And b.Address <> ncell
    Else
        MsgBox "El nombre no existe", vbExclamation
    End If
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas