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.
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
Muchas gracias.
"Benito Merino" escribió:
> .
>
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...
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)
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ó:
> .
>