Buscar dato con .find en un sola comuna Macro

HOLA

Estoy ocupando una macro para buscar un dato para lo cual utilizo este código:

ActiveSheet.Range("H:H").Find(What:=búsqueda, After:=ActiveCell, LookIn:=xlValues, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Select

EL cual tiene un problema, para que me me busque el dato que yo quiero en la columna H debe de estar el cursor ubicado en la columna H pero si esta en otra columna, me busca el dato en toda la hoja. Espero haberme explicado.

Gracias por su ayuda.

1

1 respuesta

Respuesta
1

Te conviene utilizar SET (debo haber escrito cientos de ejemplos aquí, con el buscador del foro los encontrarás):

Ej:

Set busco = Range("H:H").Find(.....) 'aquí no va select

if not busco is nothing then

MsgBox "Lo encontré"

Else

MsgBox "NO lo encontré"

End If

Por supuesto que los mensajes son para que ubiques las instrucciones según cada caso.

Y luego utilizas el dato encontrado, por ej: busco. Row es la fila donde se encontró.

Te la paso completa x las dudas:

Set busco = Range("H:H").Find(búsqueda, LookIn:=xlValues, LookAt :=xlPart)

Puede ser xlWhole también en lugar de xlPart. Leé los alcances de cada una en la Ayuda Excel.

Probala y comentame.

Sdos

Elsa

Hola Elsa.

Ya probé el código pero siempre me manda el mensaje de "Lo encontré" aunque escriba valores que no se encuentran en la lista. A que cres que se deba?

Y también necesito extraer datos de la fila (pero en diferente columna) en que se encuentra el dato buscado, como le puedo hacer si ocupo SET.

Gracias por tu ayuda Elsa.

En tu ejemplo lo tenías con xlPart, pero para una coincidencia exacta debe ser xlWhole

Set busco = Range("H:H").Find(búsqueda, LookIn:=xlValues, LookAt :=xlWhole)
if not busco is nothing then
MsgBox "Lo encontré"

dato1 = busco.offset(0,1).value 'te devuelve lo que se encuentra en col I
Else
MsgBox "NO lo encontré"
End If

Sdos

Elsa

Excelente, ya me quedaron las dos cosas, la búsqueda y la obtención de datos, no sabia que se podía hacer un OFFSET para un para una variable de objeto (SET). En fin, muchas gracias por tu ayuda.

Saludos!!!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas