Macro copiar datos entre hojas excel

Necesito una macro para copiar un rango seleccionado a otra hoja en la fila que se encuentre disponible ultima . Los datos que tengo que copiar están formateados en una tabla excel y los voy a copiar a otra tabla.
[email protected]
Rolando

1 Respuesta

Respuesta
1
Para este caso la solución seria la siguiente:
Sub Copia()
Dim i As Integer ' El valor serà la fila que copiaremos
i = 2 'Ejemplo para copiar la fila 2 desde el rango "A2:D2"
Range("A" & i & ":D" & i).Copy Sheets("Hoja2").Range("a1048576").End(xlUp)(2)
'Se seleccionò  el  rango "A2:D2" y se copiò en la ùltima fila vacìa de la hoja
'2
End Sub
Espero esto solucione tu duda... 
Saludos...
Sub Copia()
Dim i As Integer ' El valor serà la fila que copiaremos
i = 2 'Ejemplo para copiar la fila 2 desde el rango "A2:D2"
Range("A" & i & ":D" & i).Copy Sheets("Hoja2").Range("a1048576").End(xlUp)(2)
'Se seleccionò  el  rango "A2:D2" y se copiò en la ùltima fila vacìa de la hoja
'2
End Sub
Experto:
Disculpa la molestia, es que estado probando con el código que me enviaste pero lo que pasa es que solamente copia lo de la celdas a2:d2 y no lo que esta seleccionado, necesito que copie desde cualquier para de la tabla y pegue en la ultima fila libre que le indique em otra hoja, no se si me entiendes.
Rolando
[email protected]
Perdón por no contestar, entonces lo que necesitas es esto:
Sub Copia()
Selection.Copy Sheets("Hoja2").Range("a1048576").End(xlUp)(2)
End Sub
Del código que envié solo cambia "Range("A" & i & ":D" & i)" por la palabra "Selection"
Ahora lo que selecciones se copiara a la ultima fila vacía de la hoja 2.
Solo edita el nombre de la hoja por la hoja de destino.
Saludos y si esto no es lo que buscas házmelo saber!
Hola Experto:
Gracias por contestar.
Si ya estuve probando, porque un experto me envío también que cambie el rango, por la palabra selection, pero lo que pasa es solamente quiero que copie los valores, y con el código me arrastra el formato, tendría que ser como un pegado especial, y como en la hoja2 tengo un formato de tabla con fila totales, lo copia fuera de la tabla en decir después de la fila de totales. No se si me entiendes, disculpa es que soy un poco nuevo en esto. Lo que yo quiero es que pegue dentro del formato tabla.
Rolando.
Un poco más elaborado:
Sub Copiar()
Application.ScreenUpdating = False
Sheets("Hoja1").Select
Selection.Copy
Sheets("Hoja2").Select
RowFin = Range("a1048576").End(xlUp).Row + 1
Range("A" & RowFin).Select
ActiveCell.PasteSpecial xlPasteValues
Application.ScreenUpdating = True
End sub
Y no te preocupes Rolando si esto no soluciona tu problema con gusto lo revisamos...
Hola experto:
Muchas gracias por contesta, estoy muy agradecido, mira el código que me has enviado funciona perfecto ya no me arrastra los valores, pero tengo el problema que es donde lo pega, lo pega fuera de la tabla, te envío el código adecuado a mi necesidad, en la parte que dice tabla6 es el nombre de la tabla, con este código si pega dentro de la tabla pero en A1 y no en la última fila
Sub Copiar()
Application.ScreenUpdating = False
Sheets("PROCESOS").Select
Selection.Copy
Sheets("ENTRADAS").Select
RowFin = Range("Tabla6").End(xlUp).Row + 1
Range("A" & RowFin).Select
ActiveCell.PasteSpecial xlPasteValues
Application.ScreenUpdating = True
End Sub
Ojala me puedas ayudar.
Saludos
Rolando
Claro que si...
En RowFin = Range(" aquì especificas la letra que corresponda a la columna donde empezara a pegar
Ejemplo si pones :
               RowFin = Range("A65000").End(xlUp).Row + 1
                     Quiere decir que primero se va a ir hasta la fila 65000 de la columna A
                       End.(XlUp).end   Nos dice que se va la seleccion hacia arriba hasta que encuentre la primera celda no vacia.
                       Row Con esto le decimos que en vez de seleccionarlo solo nos diga que fila tenemos y por eso le pongo +1 para que lea la celda siguiten que esta vacía.
Ahora cambia la letra A por la que se encuentre como primer registro de tu tabla
Si escribes Range("Tabla6") la macro busca una celda que se llame Tabla6 y al no encontrarla el valor que da es 0, más el uno que le pedimos nos da 1 por eso te pega la información en la A1.
Si quieres pon una parte de la tabla en imagen para que te pueda decir en que columna debe ir el rango.
Quedo a tus ordenes por cualquier duda y/o comentario!
Hola experto:
Te agradezco, mucho tu atención, con la explicación que me diste, todo me quedo muy claro, encontré el código, era muy fácil, solamente tenia que ver cuantas filas tiene mi tabla, y anotarlo en el rango, solamente que ahora el rango seleccionado para copiar se me queda activado., no se cual sera la clave para quitar la selección.
Saludos
Rolando.
Para que la selección se quite al terminar de pegar escribe:
Sheets("PROCESOS").SELECT
Range("A2").Select
Hola experto
Te agradezco muchísimo tu esfuerzo, de verdad no se seria de nosotros sin uds., los expertos, encontré mi solución.
Gracias!
Rolando.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas