Contar número de celdas de un color determinado

Tengo el siguiente código de VBA:

Function CONTARCOLOR(celdaOrigen As Range, rango As Range)
Application. Volatile
'Variables
Dim celda As Range
'Recorremos todas las celdas del rango
For Each celda In rango
'Compara la propiedad Interior.Color
If celda.Interior.Color = celdaOrigen.Interior.Color Then
CONTARCOLOR = CONTARCOLOR + 1
End If
Next celda
End Function

Y en la celda donde quiero la respuesta (por ejemplo F36) tengo la siguiente fórmula:

=CONTARCOLOR(A36;$A$4:$AM$29)

Donde A36 contiene el color que quiero contar y $A$4:$AM$29 es el rango del que quiero contar las celdas con el color de A36.

En principio obtengo la respuesta correcta, pero si añado el color a alguna celda más o quito el color a alguna de las celdas que lo contenían, la respuesta no cambia, es decir, no realiza nuevo cálculo.

Si pincho en la celda de la respuesta (F36), después pincho en la ventana de fórmulas (la que está arriba, donde aparece la fórmula) y pincho ENTER, entonces vuelve a hacer el cálculo y da la respuesta correcta.

Mi pregunta es, ¿se puede conseguir que realice el cálculo automáticamente, en el momento en que yo quite o añada el color en cualquier celda?

3 Respuestas

Respuesta

Solo por si acaso. Si el color de las celdas cambia por formato condicional, basta con pensar fuera de la caja, y en lugar de evaluar el color, evaluar el valor que provoca el cambio de color.

Por ejemplo si tienes un formato condicional que establece que cada celda que tenga un "5" debe ser roja. En lugar de chequear si la celda es roja, deberíamos chequear si la celda tiene un "5".

Pero si el color lo cambias manualmente, se complica bastante. Imposible no es, pero simple tampoco.

Respuesta
2

[Hola

Para Microsoft el cambio de formatos no es significativo para el recálculo de fórmulas, ha sido así desde versiones antiguas de Excel y aún hoy en la versión 2019 sigue siendo así ¿qué quiero decir con eso? Que no hay forma de que tu UDF cambie su resultado cuando cambias cualquier color de celda del rango que cuenta tu UDF aplicada a una celda como fórmula.

Lo siento

Abraham Valencia

PD: Podrías intentar algo que tu ayuda a través del evento SelectionChange de la hoja pero necesariamente tendría que ser solo para un rango...

Respuesta
1

Me encontré el mismo problema hace unos años, al final tuve que resignarme y programarlo en una rutina que ejecutaba a conveniencia.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas