color de celda con formato condicional

3 envíos / 0 nuevos
Último envío
DudaPorEmail
Imagen de DudaPorEmail
Offline
última acción: Hace 1 año 7 meses
Nivel 1 - 200 puntos
alta: 15/10/2013 - 07:56
Puntos: 823
color de celda con formato condicional

Resulta q tengo un rango de celdas que al cumplir cierta condicion me pone la celda de color amarillo, a partir de esos colores uso la macro para saber la cantidad de amarillos q hay en ese rango.

La macro asi como te lo cuento no me funciona, pero cuando pongo la misma macro en un rango sin condicion ( osea q los colores los pongo yo al azar) si me funciona.

A mi entender es como q el rango q tiene la condicion, me llena la celda de color, pero es como q la macro no lo detecta, a que se debe eso?

 

Function CONTAR_COLOR(celdaRef As Range, rango As Range)
      Dim resultado
      Dim celda As Range
      For Each celda In rango
         If celda.Interior.Color = celdaRef.Interior.Color Then
             resultado = resultado + 1
         End If
      Next celda
      CONTAR_COLOR = resultado

End Function

Etiquetas: 

pacomegia
Imagen de pacomegia
Offline
última acción: Hace 3 días 6 mins
Nivel 1 - 200 puntosNivel 2 - 500 puntosNivel 3 - 1000 puntosNivel 4 - 2000 puntosNivel 5 - 4000 puntosadministrador
alta: 27/12/2006 - 23:26
Puntos: 11175
Si el color lo genera un
Si el color lo genera un formato condicional, entonces no puedes leer ese color con Celda.Interior.Color
.Interior.Color es el color que se establece a mano.
 
A partir de Excel 2010 puedes utilizar DisplayFormat:
tuCelda.DisplayFormat.Interior.Color
 
En versiones 2007 o anteriores es mucho más complicado obtener el color que se muestra.
aquí tienes unos ejemplos para versinoes antiguas:
 
 

 

------
Ya sé Excel, pero necesito más.

Jose Mieres (no verificado)
Imagen de Jose Mieres
Funciona con el DisplayFormat

Funciona con el DisplayFormat. La cuestión es que muestra el resultado como error en la celda. Sin embargo, al desplegar la ventana de la función como tal, muestra el resultado correcto. Aún no logro hacer que muestre el resultado correcto en la celda.