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)