Copiar datos de un libro a otro con macros

29/03/2006 - 21:52 por Filipousssispam | Informe spam
Hola, tengo el siguiente problema. Supongamos que tengo una hoja en el
libro 1 que al introducirle unos datos hace unos cálculos y genera una
serie de diferentes resultados. Yo lo que quiero hacer es copiar esos
resultados a otra hoja en otro libro en una línea, pero de forma que
cada vez que introduzca nuevos datos en la hoja del libro1 y ejecute
la macro me copie los nuevos resultados en la línea inmediatamente
inferior, y así sucesiva e indefinidamente.

O sea busco que cuando en el libro uno me hace los calculos para
determinados datos, ejecutar la macro y que los resultados me los
copie en una línea de otra hoja de otro libro cada vez que haga los
cálculos, y así me vaya rellenando la otra hoja línea a línea, una
línea cada vez que ejecute la macro y que detecte dónde tiene que
escribir los nuevos datos sin sobreescribir la línea anterior.

Normalmente lo hago a mano, pero cuando tengo que hacer 200 cálculos
diferentes es una pesadez inmensa. A lo mejor es posible hacerlo sin
macros, pero no sé cómo hacerlo.

He probado grabando macros, pero no sé cómo hacer que rellene la
siguiente fila si la anterior está ocupada. Lo máximo que he sacado es
lo siguiente (la macro se ejecuta desde el Libro1) :

Range("B2").Select
Selection.Copy
Windows("Libro2").Activate
ActiveSheet.Paste
Range("C3").Select
Windows("Libro1").Activate
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro2").Activate
ActiveSheet.Paste
Range("D3").Select
Windows("Libro1").Activate
Range("B4").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro2").Activate
ActiveSheet.Paste
End Sub


¿Se puede hacer lo que yo quiero con las macros o necesito algún
programa externo para hacerlo?

Gracias.
 

Leer las respuestas

#1 Juan
29/03/2006 - 23:19 | Informe spam
Yo te sugiero que tengas en una celda oculta en valor de la fila en que
puedes copiar.
es decir, si copias del libro1 al libro2 10 registros.. en la celda oculta
ira el valor 11.
este será como un tope.. y cuando actualices buscas la celda en la que esta
el último registro (del libro 2) o sumando lo que tiene tope (celda oculta)
mas la cantidad de registros que copio.

para ubicarse en la celda donde va a copiar en el libro 2 puede utilizar

Windows("Libro2").Activate
Range("A" & tope).select
ActiveSheet.Paste

Espero te sirva..

Saludos

Juan Alejandro P.


wrote in message
news:

Hola, tengo el siguiente problema. Supongamos que tengo una hoja en el
libro 1 que al introducirle unos datos hace unos cálculos y genera una
serie de diferentes resultados. Yo lo que quiero hacer es copiar esos
resultados a otra hoja en otro libro en una línea, pero de forma que
cada vez que introduzca nuevos datos en la hoja del libro1 y ejecute
la macro me copie los nuevos resultados en la línea inmediatamente
inferior, y así sucesiva e indefinidamente.

O sea busco que cuando en el libro uno me hace los calculos para
determinados datos, ejecutar la macro y que los resultados me los
copie en una línea de otra hoja de otro libro cada vez que haga los
cálculos, y así me vaya rellenando la otra hoja línea a línea, una
línea cada vez que ejecute la macro y que detecte dónde tiene que
escribir los nuevos datos sin sobreescribir la línea anterior.

Normalmente lo hago a mano, pero cuando tengo que hacer 200 cálculos
diferentes es una pesadez inmensa. A lo mejor es posible hacerlo sin
macros, pero no sé cómo hacerlo.

He probado grabando macros, pero no sé cómo hacer que rellene la
siguiente fila si la anterior está ocupada. Lo máximo que he sacado es
lo siguiente (la macro se ejecuta desde el Libro1) :

Range("B2").Select
Selection.Copy
Windows("Libro2").Activate
ActiveSheet.Paste
Range("C3").Select
Windows("Libro1").Activate
Range("B3").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro2").Activate
ActiveSheet.Paste
Range("D3").Select
Windows("Libro1").Activate
Range("B4").Select
Application.CutCopyMode = False
Selection.Copy
Windows("Libro2").Activate
ActiveSheet.Paste
End Sub


¿Se puede hacer lo que yo quiero con las macros o necesito algún
programa externo para hacerlo?

Gracias.

Preguntas similares