Sumar celdas de varias hojas

Respuesta de
a
Avatar
Usuario
Tengo que sumar diferentes celdas de varias hojas siempre están en la misma columna y linea en todas las hojas, el problema está en que el archivo me esta creando por medio de un macro hojas nuevas, ahora tengo la siguiente fórmula:
=SI((B35<>"");SUMA(¡hoja1:hoja20!K35);FALSO),
Pero en cuando me inserta la macro la hoja 21,(al final)ya no la suma.
Que fórmula o macro puede ser para que me sume todas las hojas independiente de el numero de hoja.
Experto
Hola rlucia:
Lo que te puede resolver el problema es que tengas fijas dos hojas digamos la hoja con el nombre "inicio" y la hoja con el nombre "final"; y que cuando agregues una nueva hoja con tu macro, la coloques entre estas dos

Sheets.Add Before =: Sheets("final")

Teniendo esto, solo modifica tu fórmula de suma para que lo haga de "inicio" a "final".

Elías
Avatar
Usuario
Si, pero por favor indicame en esta macro donde inserto la linea y que tendría que quitar de esta macro.-
Sub GuardaHistPre()


'Copia a otro archivo la hoja de presupuesto ya terminado con los valores sin formulas

Carp_dest = "c:\temp"
Arch_Desd = "historial"
Hoja_orig = "Datos"

With Application
.StatusBar = "Actualizando historial. Un momento, por favor"
.ScreenUpdating = False
.Calculate
Carp_dest = Carp_dest & IIf(Right(Carp_dest, 1) = "\", "", "\")
Arch_Desd = Arch_Desd & IIf(Right(Arch_dest, 4) = ".xls", "", ".xls")
Workbooks.Open Carp_dest & Arch_Desd
ActiveWindow.ActivatePrevious
Sheets(Hoja_orig).Copy After:=Workbooks(Arch_Desd).Sheets(Workbooks(Arch_Desd).Sheets.Count)
Cells.Copy
Cells.PasteSpecial Paste:=xlValues
Application.CutCopyMode = False
Range("A1").Select
Sheets(Sheets.Count).Name = "" & Sheets.Count
'Sheets.Add Before =: Sheets("final")
ActiveWorkbook.Close True

.StatusBar = False
.ScreenUpdating = True
Experto
Hola rlucia:
Para que te funcione, ya que hayas agregado las hojas "inicio" y "final", cambia de tu macro el renglón

Sheets(Hoja_orig).Copy After:=Workbooks(Arch_Desd).Sheets(Workbooks(Arch_Desd).Sheets.Count)

por el renglón

Sheets(Hoja_orig).Copy After:=Workbooks(Arch_Desd).Sheets(Workbooks(Arch_Desd).Sheets.Count-1)

Después de esto, todas las hojas que vayas agregando se irán colocando una antes de "final".
Por supuesto, debes colocar "inicio" como la primera hoja del libro y "final" como la última hoja.

Si aún tienes problemas con esto no dudes volver a preguntar.

Elías