Insertar una fila y copiar la anterior en una Base
Hola!
Estoy aquí peleándome con una macro que lo que quiero que haga es:
TEngo una hoja en la cual hay 3 tablas una encima de la otra separadas por unas filas en blanco.
Las tablas la única columna que tienen en común es una llamada DATE que es donde sale la fecha en formato ej:200903
Lo que he intentado es crear un botón para que a cada mes me inserte una fila al final de cada tabla y me copie las fórmulas de la fila justo anterior (con unos rangos determinados).
Lo complicado también viene aquí: Cada tabla solo puede mostrar 12 meses, y cada tabla tiene un numero distintos de meses que muestra. Entonces la cosa es que al insertar una linea de un mes nuevo en unas de las tablas hay 13 meses mostrando y oculte la más antigua (o en forma de enumeración del 1 al 13, me oculte el 1)
Esto es lo que llevo :
'Inserto una fila
Dim n As Range
Set n = Cells.Find(What:="DATE")
Range(n.Address).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown
'copio linea
ActiveCell.Offset(-1, 0).Select
y aquí me he quedado...
aunque lo habia intentado asi en un principio:
'Inserto una fila
Range("A10").Select
i = 10
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown
'copio linea
ActiveCell.Offset(0, 0).Select
Range("a" & i - 2 ";r" & i ).Select
Este ultimo no me funcionaba porque al insertar la fila para la siguiente tabla había cambiado la enumeración...
Muchísimas gracias por la ayuda que me puedas aportar!
Estoy aquí peleándome con una macro que lo que quiero que haga es:
TEngo una hoja en la cual hay 3 tablas una encima de la otra separadas por unas filas en blanco.
Las tablas la única columna que tienen en común es una llamada DATE que es donde sale la fecha en formato ej:200903
Lo que he intentado es crear un botón para que a cada mes me inserte una fila al final de cada tabla y me copie las fórmulas de la fila justo anterior (con unos rangos determinados).
Lo complicado también viene aquí: Cada tabla solo puede mostrar 12 meses, y cada tabla tiene un numero distintos de meses que muestra. Entonces la cosa es que al insertar una linea de un mes nuevo en unas de las tablas hay 13 meses mostrando y oculte la más antigua (o en forma de enumeración del 1 al 13, me oculte el 1)
Esto es lo que llevo :
'Inserto una fila
Dim n As Range
Set n = Cells.Find(What:="DATE")
Range(n.Address).Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown
'copio linea
ActiveCell.Offset(-1, 0).Select
y aquí me he quedado...
aunque lo habia intentado asi en un principio:
'Inserto una fila
Range("A10").Select
i = 10
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
ActiveCell.EntireRow.Select
Selection.Insert Shift:=xlDown
'copio linea
ActiveCell.Offset(0, 0).Select
Range("a" & i - 2 ";r" & i ).Select
Este ultimo no me funcionaba porque al insertar la fila para la siguiente tabla había cambiado la enumeración...
Muchísimas gracias por la ayuda que me puedas aportar!
1 Respuesta
Respuesta de Juan Carlos González Chavarría
-1