Inicio > Microsoft Excel > elsamatilde > buscar ultima celda y ejecutar macro

buscar ultima celda y ejecutar macro

Experto:
Usuario:
Fecha: 24/06/2008
Valoración: (5,00 sobre 5) Categoría: Microsoft Excel
23/06/2008
saruzza, usuario preguntando en Microsoft Excel
Usuario
hola quisiera saber como puedo hacer lo siguiente, tengo un libro llamado orden de produccion , con varias hojas que busca info en otros libros  x 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 vacia de la columna g y se posicione ahi , 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 produccion ,  Para el caso de la columna h la info deberia 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 x el tiempo
Saro
23/06/2008
saruzza, experto respondiendo en Microsoft Excel
Experto
Hola.
Te ajusté la macro pero no la probé..... cualquier dificultad marcame 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
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.DisplayAlerts = True
End Sub

Probalo y comentame si quedó bien.

Saludos
Elsa

Tus mejores opciones en manuales de Macros desde:
http://es.geocities.com/lacibelesdepunilla/manuales
23/06/2008
saruzza, usuario preguntando en Microsoft Excel
Usuario
Elsa, agradezco la rapidez y solución
Me dio un error al abrir nuevamente el libro tal como me lo proponias
('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 unico que me queda el libro de donde trae la info abierto, como harias para que lo cierre
Muchisimassssssssssssss Graciassssss!
23/06/2008
saruzza, experto respondiendo en Microsoft Excel
Experto
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....

Saludos
Elsa

http://es.geocities.com/lacibelesdepunilla
23/06/2008
saruzza, usuario preguntando en Microsoft Excel
Usuario
Elsa, nuevamente gracias!!!!
Probe lo que me decis, 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 util

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
23/06/2008
saruzza, experto respondiendo en Microsoft Excel
Experto
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
End Sub

Saludos
Elsa

http://es.geocities.com/lacibelesdepunilla/manuales
24/06/2008
saruzza, usuario preguntando en Microsoft Excel
Usuario
Elsa, tal como es tu estilo !!
La resuesta fue perfecta
Muchas Gracias!!
Enlaces patrocinados