Buscar en C1 y listar múltiples resultados a partir de B4

Tengo una base de datos en la hoja2 y quisiera una macro que al escribir una palabra clave en C1 de la hoja1 busque esa información en la columna B de hoja2. Y que los múltiples resultados los liste a partir de B4 en la hoja1

1 Respuesta

Respuesta
2

Se me ocurre que podrías utilizar un filtro. Algo como en la imagen siguiente:

El código utilizado lo coloqué en un módulo. Se ejecuta desde el menú Programador o utilizando un botón.

Sub busqueda_Soprano()
'x Elsamatilde
'declaramos las hojas en uso
Set hDestino = Sheets("Hoja3")      'debe ser Hoja1
Set hDatos = Sheets("Hoja2")
'el dato a buscar se encuentra en C1
dato = hDestino.[C1]
'se filtra la col B de la hoja con datos
With hDatos
    'si no tiene los filtros los aplicamos
    If .AutoFilterMode = False Then
        .Range("A3:G3").AutoFilter      'ajustar rango de títulos
    End If
    'se filtra x col B
    .Range("$A$3:$G$" & .Range("A" & Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:=dato
    finx = .Range("B" & Rows.Count).End(xlUp).Row
'decidir qué info se pasará a la hoja Destino    Range("A3:G12").Select
    .Range("A3:G" & finx).Copy Destination:=hDestino.Range("B4")
End With
End Sub

Otra manera sería ejecutarlo al cambio de la celda C1. En ese caso, en el Editor, en el objeto Hoja1 coloca estas instrucciones:

 Private Sub Worksheet_Change(ByVal Target As Range)
'solo se controla el cambio en C1
If Target.Address = "$C$1" Then Call busqueda_Soprano    'la macro de búsqueda se colocó en un módulo
End Sub

 Si necesita de algún ajuste, deja una imagen del encabezado de tus hojas .

Te invito a mirar los siguientes videos de mi canal donde encontrarás otras maneras o ejemplos para resolver tu caso.

Nº 35 (Filtro Avanzado)

Nº 36 (Filtro dinámico)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas