.10.01.17
Buenas, Karlos
La siguiente variante, permite ejecutar la rutina desde cualquier hoja.
Notarás que agregué una variable de memoria para que indiques en qué hoja está la base donde buscar:
Sub BuscaDatos()
'---- Variables modificables ----
'=== KARLOS, modifica estos datos de acuerdo a tu proyecto:
HojaOrig = "Hoja1" ' Hoja donde Buscar
RangoBusq = "A7:A5000" ' Rango donde buscar datos
HojaDest = "Hoja2" ' Hoja donde dejar lo encontrado
Celdest1 = "D4" 'celda donde dejar primer dato a la par
Celdest2 = "D8" 'celda donde dejar segundo dato a la par
Celdest3 = "C10" 'celda donde dejar tercer dato a la par
'---- fin Variables
'
'---- inicio de rutina:
'
cont = 0
Buscar = InputBox("ingresar el item a buscar " & Chr(10) & "(Cancelar o dejar en blanco para salir)", "RUTINA DE BUSQUEDA")
If Len(Buscar) Then
On Error Resume Next
Encontrado = Sheets(HojaOrig).Range(RangoBusq).Find(What:=Buscar, LookAt:=xlWhole).Address
If Err.Number = 0 And Len(Encontrado) > 0 Then
Sheets(HojaDest).Range(Celdest1).Value = Sheets(HojaOrig).Range(Encontrado).Offset(0, 1).Value
Sheets(HojaDest).Range(Celdest2).Value = Sheets(HojaOrig).Range(Encontrado).Offset(0, 2).Value
Sheets(HojaDest).Range(Celdest3).Value = Sheets(HojaOrig).Range(Encontrado).Offset(0, 3).Value
cont = 1
End If
Err.Clear
On Error GoTo 0
End If
ElMensaje = IIf(cont = 0, "NO ", "") & "SE ENCONTRO " & IIf(Len(Buscar), Buscar, "<vacio>")
TipoMens = IIf(cont = 0, vbCritical, vbInformation)
ElTitulo = IIf(cont = 0, "NO SE HIZO NADA", "TERMINADO!")
MsgBox ElMensaje, TipoMens, ElTitulo
End Sub
Espero que te sea de utilidad.
Un abrazo
Fer
.