# Actualizar Cálculos de Funciones usando Macros !!!



## odelllp (Dec 22, 2003)

Saludos Amigos !!
Una vez más molestándolos, solamente quisiera que me ayudaran en una cosita nada más, tengo un código que bajé de internet que crea una función en excel que suma valores con el fondo de un color determinado; Osea que si tengo un rango de fila [ A1:A20 ] que me sume las celdas que correspondan al color de la celda que hay en [B1] pongamos ejemplo color azul; entonces me sumará de dicho rango sólo las celdas que ponga de fondo azul... Asi pués este es el código

Function SumByColor(InputRange As Range, ColorRange As Range) As Double
' returns the sum of each cell in the range InputRange that has the same
' background color as the cell in ColorRange
' example: =SumByColor($A$1:$A$20,B1)
' range A1:A20 is the range you want to sum
' range B1 is a cell with the background color you want to sum
Dim cl As Range, TempSum As Double, ColorIndex As Integer
    ' Application.Volatile ' this is optional
    ColorIndex = ColorRange.Cells(1, 1).Interior.ColorIndex
    TempSum = 0
    On Error Resume Next ' ignore cells without values
    For Each cl In InputRange.Cells
        If cl.Interior.ColorIndex = ColorIndex Then
            TempSum = TempSum + cl.Value
        End If
    Next cl
    On Error GoTo 0
    Set cl = Nothing
    SumByColor = TempSum
End Function

Me llamó poderosamente la atención porque hay cosillas que uso en la que requiero el uso de colores para ciertos cálculos. Probándo dicha macro, me encontré de que cuando estoy ya en la hoja de excel, si hago alguna modificación a las celdas que quiero que sume, no lo hace; Entonces si me podrian ayudar a que cuando modifique cierta celda dentro del rango, me actualice los cálculos en donde yo tengo la función. - No sé si me entiendan pero si la prueban veran de lo que les digo -


LES AGRADEZCO MUCHO !!!! FELIZ NAVIDAD Y PROSPERO AÑO NUEVO 2004
DESDE COSTA RICA, CA

odelllp™


----------



## Greg Truby (Dec 22, 2003)

Suprima el primer carácter (el «'») en la línea que dice Application.Volatile.


----------



## Juan Pablo González (Dec 22, 2003)

De todas formas, así la función sea volátil, el cambiar el color de una celda NO genera un recálculo.  Para forzar eso se necesita presionar F9 o Control Shift F9.


----------



## Greg Truby (Dec 22, 2003)

Sí, don Juan Pablo, es cierto.  Debía haber mencionado eso.  Pensé en «modificación» como un cambio a un valor no a un cambio al formato de una celda.  Y ahora me siento bien tonto porque un cambio a una celda que es parte del rango a lo cual se refiere la formula automaticamente fuerza un recalculo.  Que dicha que ya vienen la vacaciones navideñas...obviamente las necesito.

Una preguntita - conozco F9, pero ¿<Ctrl>+<Shift&gt+<F9&gt?  ¿Qué hace eso?


----------



## odelllp (Dec 23, 2003)

GRACIAS SE LOS AGRADEZCO !!!!


FELIZ NAVIDAD Y PROSPERO AÑO NUEVO 2004 !!!!


----------



## Juan Pablo González (Dec 23, 2003)

Greg Truby said:
			
		

> Una preguntita - conozco F9, pero ¿<Ctrl>+<Shift>+<F9>?  ¿Qué hace eso?


(El 'Don' sobra, no ?)... Control Shift F9 forza un recálculo total, un "CalculateFull" en VBA... a veces toca con ese cuando F9 solito no funciona !!!


----------

