Buscar ult fila copiar y pegar fórmula con macro

Hola, tengo un libro en excel que se alimenta con una base de datos de sql, el cual a su vez tiene unas funciones asociadas. El tema esta en que cuando actualizo el libro automáticamente, si desaparece alguna línea se rompen las funciones asociadas.
La hoja del libro posee dichos vínculos a la base de datos de la columna A a la E - y las funciones desde la H a la V,
Quiero saber como puedo copiar y pegar las funciones desde la fila 3 columnas H a V, hasta la ultima fila que contenga contenga datos en la columna A
ejemplo
a b c de etc h i etc
1 base datos función vinculada
2 base datos función vinculada
3 base datos función vinculada
4 base datos a pegar funciones de la fila 3
6 base datos ídem
7 base datos ídem
8 base datos ídem
9 etc
Necesito hacerlo con una macro por lo expuesto anteriormente sobre las funciones
desde ya, muchas gracias

2 Respuestas

Respuesta
1
Te mando el siguiente código espero te sirva tendrás que agregarle unas cuantas lineas más para las colunmnas I, J, QUE, L etc en este caso yo hice la fórmula para sumar los valores de las columnas A y B. basándome en que la fila que se agregara fuera de la Columna A y pongo A2 al principio porque imagino que en la A1 tienes el Titulo de la columna, si no es así solo es cuestión de cambiar los datos y ya. Saludos y no te olvides de cerrar la pregunta.
Sub formula()
i = 0
Range("A2").Select
Do While ActiveCell <> Empty
ActiveCell.Offset(1, 0).Select
i = i + 1
Loop
d = 2
For x = 1 To i
Range("H" + CStr(x + 1)).Select
ActiveCell.formula = "=(A" & Format(d) & "+ B" & Format(d) & ")"
d = d + 1
Next
End Sub
Respuesta
1
Creo que no será problema hacerlo con una macro, pero antes de esto quiero preguntar algo. Si estás haciendo un query de la base de datos desde Excel, e ingresas con clic derecho sobre el rango del query, puedes seleccionar la opción "Propiedades del rango de datos" y luego seleccionar la opción "Actualizar fórmulas en columnas adyacentes".
Revisa si esta opción es válida, sino, entonces revisamos lo de la macro.
Hola, en realidad creo que no es un query de excel, Es una conexión a una base de datos de sql, generada en excel 2007 desde la lengüeta, datos, conexiones, y no veo ninguna opción de la que me comentas dentro de las propiedades
Si podes y no te lleva mucho tiempo agradecido por la ayuda!
Exacto, a eso me refería a una consulta hecha desde Datos / Obtener datos externos...
Cuando das clic derecho sobre una tabla generada desde este tipo de consultas, te aparece un menú contextual diferente, con unas opciones al final como Refrescar datos, Editar Query y Propiedades del rango de datos... ¿no te aparecen?
En fin, si no aparecen entonces vamos con lo de la macro, lo primero es identificar cual es el último dato de la tabla, con esto puedes duplicar las fórmulas en las celdas que están al lado.
Sería algo como esto:
x = Range("A1").End(xlDown).Row
Dim c as Range
For Each c In Range("AN1:AN" & LTrim(Str(x)))
     c.FormulaR1C1 = "=RC[-28]+RC[-19]"
Next c

En este ejemplo el query aparecería desde la celda A1 con una cantidad de filas y columnas determinadas. Con la primera línea identificas cuál es la última fila con datos a partir de A1. Luego, con el ciclo For, vas a colocar en todas las celdas de la columna AN desde la 1 hasta la última del query, la fórmula que suma la celda -28 y -19 (es decir la que se encuentra 28 y 19 celdas a la izquierda de AN.
Creo que esto mismo podrías utilizar para tu necesidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas