Copiar datos de una lista y pegarlos en celdas dejando un hueco entre ellas.

Llevo dándole vueltas a esto y ni encuentro la solución por mi mismo ni en ningún otro sitio.

El caso es que tengo una HOJA2 donde importo datos de una web y me queda una columna con una lista de datos:

Ej:

.. A..

Juan

Pepe

Antonio

En otra HOJA1 tengo otra columna donde quiero pegar esos datos, pero no de forma consecutiva, sino saltando algunas filas.

... A...

Juan

--

--

Pepe

--

--

Antonio

En realidad en los huecos vuelve a ir el valor de la celda superior, es decir, la columna final debe quedar:

... A...

Juan

Juan

Juan

Pepe

Pepe

Pepe

Antonio

Antonio

Antonio

Lo que me gustaría es Copiar la lista completa de la hoja 2 y que se pegarán en la otra hoja de la forma que he expuesto.

Es mi primera pregunta en un foro de este tipo, no. Se sí me haber explicado bien pero esperó vuestra ayuda.

1 Respuesta

Respuesta
1

Te explicaste bien. En un rato te preparo la macro, no finalices aún.

Muchas gracias, no esperaba que fuese tan rápido. Si lo solucionas me vas a ahorrar muchísimo tiempo....

Ah... pero solo casualidad... no siempre es tan rápido, a no mal acostumbrarse ;)

En un rato va... no finalices aún.

Entrá al Editor de macros, insertá un módulo y allí copiá esta rutina:

Sub separaNbres()
'x Elsamatilde
'se ejecuta desde Hoja2 volcando nueva lista en Hoja1
'limpia Hoja1 de datos anteriores
Sheets("Hoja1").Range("A:A") = ""
'1er fila de destino
filx = 2
Sheets("Hoja2").Select
'recorre la col A hasta una celda vacía. Fin de rango
Range("A2").Select
While ActiveCell.Value <> ""
ActiveCell.Copy Destination:=Sheets("Hoja1").Range("A" & filx)
filx = filx + 3
'pasa a la fila sgte en Hoja2 y repite el bucle
ActiveCell.Offset(1, 0).Select
Wend
MsgBox "Fin del proceso"
End Sub

Observá que recorre la col a partir de fila 2 y así también es el pegado... podés ajustarlo a otros valores.

Para ejecutarlo desde Hoja2 podés incluir un botón o un atajo de teclado. Estos temas los tengo desarrollados en la sección Macros de mi sitio.

Muchísimas gracias, Sería posible hacerlo sin pegar celdas en blanco en medio?

Yo tengo

...A...

1 Juan

2 =A1

3 =A1

4 =A1

5 =A1

6 Pepe

7 =A6

8 =A6

9 =A6

10 =A6

En el código que me mandas, me borra las fórmulas de las filas en blanco.

TAmbién me valdría pegando los valores 5 veces, es decir:

...A...
1 Juan
2 Juan
3 Juan
4 Juan
5 Juan
6 Pepe
7 Pepe
8 Pepe
9 Pepe
10 Pepe

Gracias mil, espero que tenga solución.

Aquí va ajustada. El nro 5 podes cambiarlo x la cantidad total de repeticiones que necesites.

Sub separaNbres()
'x Elsamatilde
'se ejecuta desde Hoja2 volcando nueva lista en Hoja1
'limpia Hoja1 de datos anteriores
Sheets("Hoja1").Range("A:A") = ""
'1er fila de destino
filx = 2
Sheets("Hoja2").Select
'recorre la col A hasta una celda vacía. Fin de rango
Range("A2").Select
While ActiveCell.Value <> ""
For i = 1 To 5
ActiveCell.Copy Destination:=Sheets("Hoja1").Range("A" & filx)
filx = filx + 1
Next i
'pasa a la fila sgte en Hoja2 y repite el bucle
ActiveCell.Offset(1, 0).Select
Wend
MsgBox "Fin del proceso"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas