Macro en excel

Hola! Para copiar los datos al final de una lista, se utiliza el comando Range("Celda"). End(xlUp). Offset(1, 0). Con esta instrucción averiguas cuál es la última celda con datos, y pega la tabla a continuación. Te voy a poner un ejemplo sencillo: imagina que los datos que quieres copiar se encuentran en la celda A2, y quieres copiarlos en la columna B, pero no sabes cuál es la última celda ocupada, así que para especificar dónde se deben copiar los datos, se usa la siguiente macro:
Sub PegarDatos()
Range("A2").Copy Range("B1").End(xlUp).Offset(1, 0)
End Sub
Ahora sólo necesitas cambiar los rangos por los que correspondan en tu libro, y ya lo tienes. Espero haberte solucionado el problema, si no lo consigues, puedes mandarme el libro de Excel por correo, y trataré de ayudarte. (Pero si la ayuda fue suficiente, por favor, no olvides finalizarla) Un saludo.

1 Respuesta

Respuesta
1
Siento el retraso, pensé que estaba la pregunta finalizada. En fin, lo he estado mirando, y chico, no logro entender porqué no sirve la respuesta que te dí: dices que primero se pegan en el rango i4:m4, y quieres que a la vez siguiente se peguen en i5:m5, bien, pues eso se consigue mirando cuál es la última celda con datos de la columna i:Range("I1"). End(xlDown). Offset(1, 0). Activate
Te explico:range(I1").End(xlDown) va a la última celda con datos de la columna I.
Offset(1,0) baja una celda, es decir, se coloca en la primera celda vacía de la columna I (en tu ejemplo, si la vez anterior se había pegado en I4:M4, ahora bajará a I5). Espero haberte ayudado, si te siguen quedando dudas, vuelve a preguntarme.
Estoy haciendo una macro en excel que me copia los datos de una tabla y me los pega en otra, se trata de entradas de caja diarias, el problema es que no he podido hacer que la macro pegue los datos secuencialmente, o sea los pega siempre en la misma fila, con lo cual borra los quepego antes, quisiera saber que comando debo usar para editar la macro de forma que pueda corregir el problema... gracias
Hola, me parece que no me expresé bien por lo cual no entendiste mi problema.
El ejemplo sería así:la macro me copia una serie de datos de una tabla y los pega en una fila de otra tabla, lo que yo quiero es que cada vez que pega los datos baje una fila, por ejemplo si una vez los pega en el rango i4:m4 a la vez siguiente que pegue los datos lo haga en i5:m5 y así sucesivamente... desde ya muy agradecido por tu respuesta.
Te adjunto el código de la macro
Sub guardar()
'
' guardar Macro
' Macro grabada el 04/02/2005 por ElRa
'
'
Range("I3").Select
Selection.Copy
Range("I24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Selection.ClearContents
Range("I3").Select
Selection.Copy
Application.Run Range("AUTOSAVE.XLA!mcs02.OnTime")
Range("I3").Select
Selection.Copy
Range("I24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("F11:G12").Select
Application.CutCopyMode = False
Selection.Copy
Range("J24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("F3:G4").Select
Application.CutCopyMode = False
Selection.Copy
Range("K24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("F7:G8").Select
Application.CutCopyMode = False
Selection.Copy
Range("L24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("H6:H7").Select
Application.CutCopyMode = False
Selection.Copy
Range("M24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("H3:H4").Select
Application.CutCopyMode = False
Selection.Copy
Range("N24").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Range("I25").Select
End Sub
Elra
Te recuerdo que tienes la pregunta pendiente, debes, si quieres continuar con la pregunta, deberás aclararme los puntos que no entendí. Sino.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas