Macro buscar último

Buen día...Molestando de nuevo. En días anteriores me apoyaste con la siguiente macro:

Sub ultima_valor()
valor = Selection.Value
contarsi = Application.WorksheetFunction.CountIf(Columns(1), valor)
ultimo = Range("a65000").End(xlUp).Row
Set busca = Sheets("Hoja2").Range("a1:a" & ultimo).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
For por = 1 To contarsi
Sheets("Hoja1").Select
libre = selection.Row
ActiveSheet.Cells(libre, 3).Value=busca.Offset(0,2)
Set busca = Sheets("Hoja2").Range("a1:a" & ultimo).FindNext(busca)
Next
End If
End Sub

Como podrás ver, le hice algunas adecuaciones. Desafortunadamente, en la parte de "Set busca" no he logrado invocar una hoja de otro libro de Excel, diferente al que tengo activo. Al poner la ruta me manda el error "El objetivo no admite esta propiedad o método". Sería posible que me auxiliaras sobre cuál es el error que estoy cometiendo. La ruta de la hoja en la que necesito que se haga la búsqueda es     Windows("CONTROL INTERNO CAPERTURA NVO.xlsx").Activate.Sheets("CA NUEVO").Select. Como siempre, gracias.

1 Respuesta

Respuesta
1

La linea de Set sería así:

Set busca = workbooks("CONTROL INTERNO CAPERTURA NVO.xlsx").sheets("CANUEVO").range("a1:a" & ultimo).FindNext(busca)
Next

Gracias por los comentarios pero ahora me arroja el error "Subíndice fuera de intervalo". La macro, con tus modificaciones quedaría así:

Sub ultima_valor()
valor = Selection.Value
contarsi = Application.WorksheetFunction.CountIf(Columns(1), valor)
ultimo = Range("a65000").End(xlUp).Row
Set busca = Workbooks("CONTROL INTERNO CAPERTURA NVO.xlsx").Sheets("CANUEVO").Range("a1:a" & ultimo).Find(valor, LookIn:=xlValues, lookat:=xlWhole)
If Not busca Is Nothing Then
For por = 1 To contarsi
ActiveSheet.Select
libre = Selection.Row
ActiveSheet.Cells(libre, 3).Value = busca.Offset(0, 2)
Set busca = Workbooks("CONTROL INTERNO CAPERTURA NVO.xlsx").Sheets("CANUEVO").Range("a1:a" & ultimo).FindNext(busca)
Next
End If
End Sub

Será que estoy cometiendo algún error??? Gracias.

¿Has revisado el path del archivo?. Si no decimos nada lo intentará abrir del directorio predeterminado de excel. Si quieres trabajar en algún directorio en particular para abrir el archivo de búsqueda será mejor que pongas el path delante del archivo como en el siguiente ejemplo:

Set busca = Workbooks("C:\Users\Luis\Documents\CONTROL INTERNO CAPERTURA NVO.xlsx").Sheets("CANUEVO").Range("a1:a" & ultimo).Find(valor, LookIn:=xlValues, lookat:=xlWhole)

y también en el findnext

Set busca = Workbooks("C:\Users\Luis\Documents\CONTROL INTERNO CAPERTURA NVO.xlsx").Sheets("CANUEVO").Range("a1:a" & ultimo).FindNext(busca)

Rectifico, no es cuestión del path. Si quieres mándame los archivos y te lo preparo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas