Aplicar formula a todas las hojas de un libro

Necesito aplicar una formula en todas las hojas de un libro.

Las hojas no siempre tienen el mismo nombre. Los rangos de las celdas donde se aplica la formula es el mismo para todas las hojas. A continuación envío la formula que realice con una macro.

Sub formula()
Sheets("Hoja2").Select
Range("A1").Select
ActiveCell.FormulaR1C1 = _
"=(POWER((SQRT(SUMSQ(SDS00001!R[2]C[1]:R[20481]C[1])/20479))/10,2)*R[3]C[0])"
Range("A2").Select
End Sub

SDS00001 Seria el nombre de una de las hojas, R[3]C[0] es un valor que se carga manualmente y son celdas sucesivas de acuerdo a la cantidad de hojas que contenga el libro. Por ultimo, el valor de cada calculo que se realice debe ir en una celda diferente (Ej: A1, A2...)

Espero haber sido claro con la y que puedan ayudarme. Es para Excel 2007.

Desde ya, muchas gracias!

1 respuesta

Respuesta
1

Quieres decir que en la hoja2 quieres todas las fórmulas, la fórmula para la hoja: "SDS00001" la quieres en la celda A1, la fórmula para hoja:"SDS00002" en la A2, ¿etc?

Otra duda: si la fórmula la pones en la celda A1, esto: R[3]C[0] sigfica la celda "A4", lo que va a pasar, es que si tienes un valor en A4, la fórmula para la hoja "SDS00004", se encimaría sobre ese valor.

Si son afirmativas mis dudas, entonces esta es la macro:

Sub formula()
'Por.DAM
n = 1
For Each h In Sheets
    Select Case h.Name
        Case "Hoja2"
        Case Else
            Sheets("Hoja2").Range("A" & n).FormulaR1C1 = _
            "=(POWER((SQRT(SUMSQ(" & h.Name & "!R[2]C[1]:R[20481]C[1])/20479))/10,2)*R[3]C[0])"
            n = n + 1
    End Select
Next
End Sub

Saludos.Dante Amor
Si es lo que necesitas.

Hola Dante. Con respecto a tus duas: Lo primero es correcto, es justo lo que necesito. Y en la segunda fue un error mio al seleccionar la celda, por lo tanto tus dudas son correctas.

Lo que hiciste es lo que necesito, salvo que el rango donde se aplica la fórmula tiene que ser el mismo para todas las hojas... R[2]C[1]:R[20481]C[1], es decir debe estar fijo, y en esta macro va cambiando a medida que cambia de hoja.

El rango de R[3]C[0] está bien, pues tiene que ir cambiando de celda a medida que cambia de hoja.

Espero haber despejado tus dudas.

Muchas gracias por tu trabajo!

Cambia por esto:

"=(POWER((SQRT(SUMSQ(" & h.Name & "!R3C2:R20482C2)/20479))/10,2)*R[3]C[0])"

Aún no entiendo si el rango R[3]C[0], es de la misma hoja2 o es el rango de cada hoja, en tu fórmula es de la misma hoja2, si quieres que sea de cada hoja, entonces sería así:

"=(POWER((SQRT(SUMSQ(" & h.Name & "!R3C2:R20482C2)/20479))/10,2)*" & h.Name & "!R[3]C[0])"

Saludos. Dante Amor
No olvides finalizar la pregunta.

Hola Dante.

Si, el rango R[3]C[0] es de la misma hoja 2. Asi quedó perfecto, es lo que necesitaba.

Muchas gracias por tu trabajo y tu tiempo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas