Buscar ultima celda y ejecutar macro

Hola quisiera saber como puedo hacer lo siguiente, tengo un libro llamado orden de producción, con varias hojas que busca info en otros libros por medio de una macro,
como puedo hacer para que una sola macro al ejecutarla me haga lo siguiente, en este caso quiero que ubique en la hoja "secuencia" de mi libro, la primer celda vacía de la columna g y se posicione ahí, y ejecute otra macro que busque los datos en los libros, cuyos nombre seria la ruta de la misma fila (columna f), la hoja (seguimientos de dicho libro) el rango h39 y lo pegue en la misma fila columna g de la hoja secuencia del libro orden de producción, Para el caso de la columna h la info debería traerla del mismo libro o ruta del rango f 7 y para la columna i del rango d37 siempre de la misma hoja
espero que me entiendas
columna f columna g columna h columna i
Ruta ESTADO RESULTADO stand by
\\Server\op55del200608           EN CONFECCION             1500
\\Server\op50del200608
\\Server\op51del200608
Sub BUSCAROP6()
Te pego la macro que tengo creada, pero el tema es que por la manera que la tengo realizada, debo hacer una mcaro nueva cada vez que ingreso otra op
Workbooks.Open Filename:=Range("F7")
Sheets("seguimiento").Select
Range("H39").Select
Selection.Copy
Windows("ORDEN DE PRODUCCION GENERADOR.xls").Activate
Sheets("secuencia").Select
Range("H7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = False
Workbooks.Open Filename:=Range("F7")
Sheets("seguimiento").Select
Range("d38").Select
Selection.Copy
Windows("ORDEN DE PRODUCCION GENERADOR.xls").Activate
Sheets("secuencia").Select
Range("g7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = False
Workbooks.Open Filename:=Range("F2")
Sheets("seguimiento").Select
Range("d37").Select
Selection.Copy
Windows("ORDEN DE PRODUCCION GENERADOR.xls").Activate
Sheets("secuencia").Select
Range("I7").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = True
End Sub
Desde ya, muchas gracias por el tiempo
Saro

1 Respuesta

Respuesta
1
Te ajusté la macro pero no la probé... cualquier dificultad márcame la línea que pudiera dar error.
Sub BUSCAROP6()
'busca la primer celda vacía de la col G. Si la hoja será la activa podés reemplazar Sheets("s...")  por Activesheet como utilicé más abajo.
fila = Sheets("secuencia").Range("G65536").End(xlUp).Row + 1
'toma el dato de la col F
libro = ActiveSheet.Cells(fila, 6).Value
Workbooks.Open Filename:=libro
Sheets("seguimiento").Select
Range("H39").Select
Selection.Copy
Windows("ORDEN DE PRODUCCION GENERADOR.xls").Activate
Sheets("secuencia").Select
Cells(fila, 8).Select 'col H
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = False
'reemplacé la línea que abría nuevamente el libro por esta que solo lo activa
Workbooks(libro).Activate
Sheets("seguimiento").Select
Range("d38").Select
Selection.Copy
Windows("ORDEN DE PRODUCCION GENERADOR.xls").Activate
Sheets("secuencia").Select
Cells(fila, 7).Select 'col G
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = False
Workbooks(libro).Activate
Sheets("seguimiento").Select
Range("d37").Select
Selection.Copy
Windows("ORDEN DE PRODUCCION GENERADOR.xls").Activate
Sheets("secuencia").Select
Cells(fila, 9).Select 'col I
Application.DisplayAlerts = True
End Sub
Pruébalo y comentame si quedó bien.
Saludos
Elsa
Tus mejores opciones en manuales de Macros desde:
http://es.geocities.com/lacibelesdepunilla/manuales
Elsa, agradezco la rapidez y solución
Me dio un error al abrir nuevamente el libro tal como me lo proponías
('reemplacé la línea que abría nuevamente el libro por esta que solo lo activa
Workbooks(libro).Activate )
Pero lo solucione, haciendo que en el libro de donde busca la info, esta, este en tres celdas consecutivas, y que las copie y las pegue en el de destino las tres a la vez
lo único que me queda el libro de donde trae la info abierto, como harías para que lo cierre
Muchisimassssssssssssss Gracias!
Despue´s del último Selection. Copy, podés agregar esto:
activeworkbook.close true
Esto te cerrará el libro dejándote en el libro donde pegarás la info, entonces inhabilitá la línea que lo activa, Windows("Orden...)
Espero se entienda...
Elsa, nuevamente gracias!
Probé lo que me decís, haciendo que se cierre el libro y eliminando activar la hoja, pero resulta que al hacer eso me da un error cuando lo quiere pegar, que no me da si el libro queda abierto, te copio la macro por si ves algo raro. Desde ya muchas gracias, y si es mucho lio, avisame que cierro la pregunta de la mejor manera, ya que tu ayuda me fue muy útil
Sub BUSCARSEGUIMIENTOS()
'busca la primer celda vacía de la col G. Si la hoja será la activa podés reemplazar Sheets("s...") por Activesheet como utilicé más abajo.
fila = Sheets("secuencia").Range("G65536").End(xlUp).Row + 1
'toma el dato de la col F
libro = ActiveSheet.Cells(fila, 6).Value
Workbooks.Open Filename:=libro
Sheets("seguimiento").Select
Range("H41:J41").Select
Selection.Copy
activeworkbook.close true
Cells(fila, 7).Select 'col G
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = True
End Sub
no se si el error se debera que son tres celdas las que quiero pegar ?? pero sin cerrar el libro andaba
Muchas GRACIAS Saro
Si quitás la línea que cierra el libro, estarás copiando en el mismo, y no en el de orden de producción.
Podemos guardar el indice o el nombre de los libros en variables (opté por nombres) para poder abrir y cerrar sin dificultad.
Esta sí está probada... comentame si funciona en tus libros:
Sub BUSCARSEGUIMIENTOS()
nbre1 = ActiveWorkbook.Name
'busca la primer celda vacía de la col G. Si la hoja será la activa podés reemplazar Sheets("s...") por Activesheet como utilicé más abajo.
fila = Sheets("secuencia").Range("G65536").End(xlUp).Row + 1
'toma el dato de la col F
libro = ActiveSheet.Cells(fila, 6).Value
Workbooks.Open Filename:=libro
'guarda solo el nbre del libro, sin ruta
nbre2 = ActiveWorkbook.Name
Sheets("seguimiento").Select
Range("H41:J41").Select
Selection.Copy
'se debe activar el primer libro
Workbooks(nbre).Activate
Cells(fila, 7).Select 'col G
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = True
'cerramos el libro copiado
Workbooks(nbre2).Close True

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas