Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

COPIAR FÓRMULAS CADA 4 FILAS

844 views
Skip to first unread message

FERNANDOMH

unread,
Apr 19, 2010, 5:28:02 PM4/19/10
to
Hola.
Tengo varios archivos con rangos de filas y columnas variables, lo que
tienen en común es que tienen datos en dos filas consecutivas con datos y
luego dos filas en blanco.

Por ejemplo si los datos iniciaran en la fila 10 (que no siempre es así)

A B C
10 5 7 20
11 25 3 80
12
13
14 5 29 34
15 76 90 83
16
18
19 76 43 12
20

Lo que hago manualmente es poner fórmulas (en este caso en la fila 12) que
sumen y otras operaciones de las primeras dos filas y luego copio manualmente
las fórmulas a las filas 16, 20, 24, etc, etc, pero son muchas filas y
quisiera poder hacerlo automáticamente con una macro.

Como digo, son varios archivos y no en todos el rango de las columnas es el
mismo, ni tampoco el rango de las filas.

Quisiera tener la oportunidad de elegir las columnas que se van a copiar y
el rango de filas hasta donde se va a copiar, de antemano muchas gracias.

Benito Merino

unread,
Apr 20, 2010, 1:51:39 AM4/20/10
to
On 19 abr, 23:28, FERNANDOMH <FERNAND...@discussions.microsoft.com>
wrote:

Hola.

Prueba la siguiente macro:

Sub macro()
[A12].Select
While ActiveCell.Row < Range("A65536").End(xlUp).Row + 2
ActiveCell.Resize(1, 3).FormulaR1C1 = "=SUM(R[-2]C:R[-1]C)"
ActiveCell.Offset(4, 0).Select

Wend
End Sub


Saludos,

Benito Merino
Barcelona

FERNANDOMH

unread,
Apr 20, 2010, 10:24:01 AM4/20/10
to

Hola Benito Merino, muchas gracias por contestar, tal vez no fui tan claro
en lo que solicitaba, probé tu código y funciona muy bien pero solo con la
operación de suma, lo que sucede es que no solo realizo sumas sino otro tipo
de operaciones (tengo funciones de excel, restas, divisiones etc.) además de
que no deseo copiar toda la fila entera, sino que elegir que columnas copiar
y estas pueden no estar contiguas.
Lo que realmente necesito es copiar exactamente unas partes de la fila 12 a
las filas 16,20,24, 28,......etc.,

Muchas gracias.


"Benito Merino" escribió:

> .
>

L. Garcia

unread,
Apr 20, 2010, 11:05:19 AM4/20/10
to
Hola Fernando:

Prueba si te sirve este truco, y si funciona puedes intentar pasarlo a
'macro' ;-)

Seleccionas todo el rango de datos y le das al menú 'Insertar/Tabla' (si
tiene o no cabeceras lo decides tu ;-D)

Creas las fórmulas en las 2 primeras filas vacias (las formulas tambien las
decides tu ;-D)

Copias las celdas que contienen las formulas (Ctrl-C), serán 2 filas por 'n'
columnas.

En el filtro de la primera columna seleccionadas SOLAMENTE las vacías, para
que queden SOLAMENTE las filas donde quieres copiar.

Seleccionas toda la primera columna (sin el encabezado, claro esta)

Haces Ctrl-V y yata!!!

Si no te gusta el formato de tabla, se puede borrar (convertir en rango)

Bueno, todo esto con Excel2007, con versiones anteriores, como no existe la
opción tabla, lo deberás hacer directamente con filtros, pero creo que
funcionaria igualmente.

Saludos


"FERNANDOMH" <FERNA...@discussions.microsoft.com> escribió en el mensaje
news:C0E9D302-6FE6-4344...@microsoft.com...

Benito Merino

unread,
Apr 20, 2010, 12:17:46 PM4/20/10
to
On 20 abr, 17:05, "L. Garcia" <liuxis_s...@redestb.es> wrote:
> Hola Fernando:
>
> Prueba si te sirve este truco, y si funciona puedes intentar pasarlo a
> 'macro' ;-)
>
> Seleccionas todo el rango de datos y le das al menú 'Insertar/Tabla' (si
> tiene o no cabeceras lo decides tu ;-D)
>
> Creas las fórmulas en las 2 primeras filas vacias (las formulas tambien las
> decides tu ;-D)
>
> Copias las celdas que contienen las formulas (Ctrl-C), serán 2 filas por 'n'
> columnas.
>
> En el filtro de la primera columna seleccionadas SOLAMENTE las vacías, para
> que queden SOLAMENTE las filas donde quieres copiar.
>
> Seleccionas toda la primera columna (sin el encabezado, claro esta)
>
> Haces Ctrl-V y yata!!!
>
> Si no te gusta el formato de tabla, se puede borrar (convertir en rango)
>
> Bueno, todo esto con Excel2007, con versiones anteriores, como no existe la
> opción tabla, lo deberás hacer directamente con filtros, pero creo que
> funcionaria igualmente.
>
> Saludos
>
> "FERNANDOMH" <FERNAND...@discussions.microsoft.com> escribió en el mensajenews:C0E9D302-6FE6-4344...@microsoft.com...

Hola.

Las siguientes modificaciones en la macro creo que, ahora, se ajustan
a tus necesidades

Sub macro()
ultimafila = Range("A65536").End(xlUp).Row + 1
[A12].Select
Range("A12", "C12").Copy
While ActiveCell.Row < ultimafila
ActiveCell.Offset(4, 0).PasteSpecial (xlPasteAll)

FERNANDOMH

unread,
Apr 20, 2010, 2:57:01 PM4/20/10
to
Hola Benito Merino, muchas gracias por contestar.

Probé el nuevo código y funciona perfectamente, es realmente lo que
necesitaba, con solo modificar los rangos en el código lo puedo utilizar para
varios archivos que no tienen el mismo rango a copiar, muchas gracias por la
atención, saludos

"Benito Merino" escribió:

> .
>

0 new messages