Saltar al contenido

Duda: macro para copiar filas de 1sheet a otra pero dejando 2 huecos entre celdas ocupadas


perthelysea

Recommended Posts

publicado

El caso es que tengo en la Sheet3 varias filas con un número variable de columnas ocupadas:

Ej:

............ColumA.......ColumB.......ColumC.........ColumD

Fila 1:....Juan..........María............Diego............Rubén

Fila 2:....Pepe..........Antonio........Jose

Fila 3:....Encarna

Quiero pegar todas esas filas en la Sheet2, pero no como están, sino dejando dos columnas vacías entre celdas con nombres, de la siguiente manera:

Ej:

..........ColumnA.......B.......C..........ColumD.......E.......F........ColumG.......H.......I........ColumJ

Fila 1:....Juan....................................María...............................Diego............................Rubén

Fila 2:....Pepe...................................Antonio.............................Jose

Fila 3:....Encarna

Lo que me gustaría es una Macro que me copie la lista de filas completa de la Sheet3 y que se peguen en la Sheet2 pero de la forma que he expuesto.

Es mi primera pregunta en un foro de este tipo, no sé sí me he sabido explicar bien!

Espero vuestra ayuda!

Un saludo y muchas gracias

publicado

.

Selecciona el rango de celdas a copiar, ejecuta la macro, y te aparecerán en Sheet3 como quieres.

Si no es eso, sube un archivo con un ejemplo.

Sub Copiar()
For Each celda In Selection
r = Selection.Row
c = Selection.Column
Sheets("Sheet3").Cells(celda.Row - r + 1, (celda.Column - c) * 3 + 1) = celda.Value
Next
End Sub
[/CODE]

.

publicado

Siento no haberme explicado bien. El caso es que tengo en la Sheet3 varias filas (20,21,22..) con un número variable de columnas ocupadas (A,B,C...):

Ej:

............ ColumA.......ColumB.......ColumC.........ColumD

Fila 20:....Juan..........María............Diego............Rubén

Fila 21:....Pepe..........Antonio........Jose

Fila 22:....Encarna

Quiero pegar todas esas filas en la Sheet2, pero no como están, sino dejando dos columnas vacías entre celdas con nombres, empezando por la columna I en fila 7, de la siguiente manera:

Ej:

......... ColumnI......J.......K......ColumL.......M.......N......ColumO......P.....Q......ColumR

Fila 7:...Juan.............................María.............................Diego.......................... Rubén

Fila 8:...Pepe............................Antonio...........................Jose

Fila 9:..Encarna

Lo que me gustaría es una Macro que me copie la lista de filas completa de la Sheet3 y que se peguen en la Sheet2 pero de la forma que he expuesto.

Un saludo y muchas gracias

publicado

Saludos @perthelysea, @Macro Antonio

Será algo así

Sub Copia()
Sheets("Hoja3").Range("A1", Range("A60000").End(xlUp)).Copy Sheets("Hoja2").Range("A1")
Sheets("Hoja3").Range("B1", Range("B60000").End(xlUp)).Copy Sheets("Hoja2").Range("D1")
Sheets("Hoja3").Range("C1", Range("C60000").End(xlUp)).Copy Sheets("Hoja2").Range("G1")
Sheets("Hoja3").Range("D1", Range("D60000").End(xlUp)).Copy Sheets("Hoja2").Range("J1")
End Sub[/CODE]

publicado

Hola a todos!

Coloca este código en un módulo, y ejecútalo:

Sub CopiaDatos()
Dim i As Long
With Sheets("Hoja3").Range("A1").CurrentRegion
For i = 1 To .Columns.Count
.Columns(i).Copy Sheets("Hoja2").Range("I1").Offset(, 3 * (i - 1))
Next i
End With
End Sub
[/CODE]

Comentas!

Espero haberte ayudado, Dios te bendiga!

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.