Este post no había quedado definitivamente "cerrado"...
Sin embargo, dos muy interesantes "perlitas": una de "
abrahamvj" y otra de "
3pies" me parece que -unidas- ponen "la frutilla al postre".
El problema radica en que:
Cita:
Iniciado por abrahamvj Ninguna funcion de Excel, asi sea propia, detecta los cambios en formato de las celdas. Por eso solo se actualizan los resultados de esa funcion, cuando ingresas algo en esa, o en cualquier otra celda.
Quizas alguien te diga que pruebes con Application.Volatile, pero lo primero que te digo es seguro.
El método "
Application.Volatile" marca una función definida por el usuario como
volátil. Una
función volátil debe volver a calcularse
siempre que se efectúe un cálculo en cualquier celda de la hoja de cálculo.
Por lo tanto, nos falta que "algo" ó "alguien" provoque recálculos en la hoja de modo transparente al usuario.
Aquí aparece la otra "perlita":
Cita:
Iniciado por 3pies Application.OnTime
Para el post en cuestión, este método programa la ejecución de un procedimiento a una hora específica o después del transcurso de un período de tiempo específico.
Por lo tanto:
a) si a la función "
Function SumColor" le agregamos el método "
Application.Volatile";
b) y le agregamos -a nivel de módulo- lo siguiente:
Código:
Public Stopit As Boolean 'on top of module!
Sub ClockParaSumColor()
If Stopit = True Then Exit Sub
[A1].Calculate
Application.OnTime (Now + TimeSerial(0, 0, 2)), "ClockParaSumColor"
End Sub
c) y -finalmente- agregamos como código de la "Worksheet" donde residen las sumas según el color a:
Código:
Private Sub Worksheet_Activate()
Stopit = False
ClockParaSumColor
End Sub
Private Sub Worksheet_Deactivate()
Stopit = True
End Sub
el resultado será que cuando estamos en la hoja que efectúa la suma según el color, esas funciones se actualizarán cada 2 seg. Mientras que cuando cambiamos de hoja (dentro del mismo libro) el procedimiento se "auto-cancela"...
Les invito a evaluar lo antedicho y -en caso de funcionar todo correctamente- a tener en cuenta los dos métodos antes descriptos.
Saludos