Visual Basic para Aplicaciones - Contar color ¿Formato condicional?

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Contar color ¿Formato condicional?

Publicado por Orion (4 intervenciones) el 13/02/2018 13:15:21
Buenos días.

Tengo declarada la siguiente función:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Function ContarColor(Color As Range, Rango As Range) As Integer
 ' Color: La celda que contiene el color a contar
 ' Rango: El rango de Celdas a considerar en el conteo
 Dim Resultado
 Dim Celda As Range
 
 Resultado = 0
 
 For Each Celda In Rango
    If Celda.Interior.ColorIndex = Color.Interior.ColorIndex Then
       Resultado = Resultado + 1
    End If
 Next
 
 ContarColor = Resultado
 
End Function

Que lo que hace es contar las celdas que hay en un rango de un determinado color.

El caso es que me funciona correctamente si el color de las celdas lo he puesto manualmente, pero no funciona si el color de las celdas es generado por un formato condicional.

Seguro que es una tontería, pero he probado de mil maneras, y no consigo que funcione.

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Contar color ¿Formato condicional?

Publicado por JuanC (565 intervenciones) el 13/02/2018 15:31:36
deberías ver FormatCondition ya que el color corresponde al formato condicional, no a la celda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Contar color ¿Formato condicional?

Publicado por Orion (4 intervenciones) el 13/02/2018 15:56:11
Ya lo he intentado poniendo en la línea 10:

1
If Celda.FormatConditions(1).Interior.ColorIndex = Color.Interior.ColorIndex Then

Y entonces me suma todas las celdas de ese rango que tienen ese color como una condición, es decir me suma las celdas que podrían tener ese color, pero no las que realmente lo tienen.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar color ¿Formato condicional?

Publicado por JuanC (565 intervenciones) el 13/02/2018 16:11:31
entonces deberías evaluar el valor de la celda y tomar color según hayas implementado el formato condicional
de alguna manera es inútil el formato condicional cuando trabajás con macros...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Contar color ¿Formato condicional?

Publicado por Orion (4 intervenciones) el 13/02/2018 16:30:33
Pues no sabría como hacer eso...

El formato condicional consiste en poner de ese color los 23 valores mayores de un rango más amplio del que estoy evaluando.

Adjunto el proyecto señalando que lo que interesa está en la pestaña Prov 1

Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Contar color ¿Formato condicional?

Publicado por JuanC (565 intervenciones) el 13/02/2018 17:13:11
no necesitás contar por color, contás sólo las celdas que tienen valor > 23

algo así

If Celda.Value > 23 Then
Resultado = Resultado + 1
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Contar color ¿Formato condicional?

Publicado por Orion (4 intervenciones) el 13/02/2018 17:32:11
Creo que no me has entendido. No son los valores mayores que 23, sino los 23 mayores valores de todo el rango.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar