Ver Mensaje Individual
  #5 (permalink)  
Antiguo 01/04/2007, 01:49
Avatar de mrocf
mrocf
 
Fecha de Ingreso: marzo-2007
Ubicación: Bs.As.
Mensajes: 1.103
Antigüedad: 17 años, 1 mes
Puntos: 88
Función que suma según los colores de fondo

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 Ver Mensaje
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