Saltar al contenido

Contar colores creados de forma automática en formato condicional


Recommended Posts

publicado

Hola a todos en primer lugar dar las gracias a todos de antemano, y en segundo pues voy a exponer mi problema.

Tengo una lista de 2.000 celdas con números diferentes. Bien, pues en esas celdas he añadido un formato condicional, de tal forma que si x=10 por ejemplo, la celda quede de color verde.

Vale, una vez hecho esto, necesito saber cuántos verdes hay, porque sino de nada me sirve lo anterior.

Estoy de acuerdo en que se podría hacer de otra forma, pero este problema no es mío, sino de una persona que me ha encargado resolvérselo y por tanto ha de ser de esta manera.

Así que eso, tengo x celdas coloreadas de color verde y necesito saber qué numero es x.

He probado añadiendo el siguiente módulo:

Function ColorFunction(rColor As Range, rRange As Range, Optional SUM As Boolean)

Dim rCell As Range

Dim lCol As Long

Dim vResult

''''''''''''''''''''''''''''''''''''''

'Written by Ozgrid Business Applications

'www.ozgrid.com

'Sums or counts cells based on a specified fill color.

'''''''''''''''''''''''''''''''''''''''

lCol = rColor.Interior.ColorIndex

If SUM = True Then

For Each rCell In rRange

If rCell.Interior.ColorIndex = lCol Then

vResult = WorksheetFunction.SUM(rCell,vResult)

End If

Next rCell

Else

For Each rCell In rRange

If rCell.Interior.ColorIndex = lCol Then

vResult = 1 + vResult

End If

Next rCell

End If

Sin embargo, no funciona, porque solo reconoce el verde cuando tu lo coloreas manualmente, y no cuando la máquina es quien lo hace mediante formato condicional. ¿Alguien sabe como solucionarlo? Mil gracias de antemano.

- - - - - Mensaje combinado - - - - -

Otra cosa, lo que es verde es la celda, el texto no.

publicado

Hola:

Prueba con el adjunto, pulsa la flecha al abrirlo.

Solo es válido si todas las celdas tienen los mismos formatos condicionales.

Solo funciona con los operadores mayor, menor, e igual.

Solo funciona con valores fijos en la fórmula del formato condicional.

Saludos

Contar colores formato condicional.zip

publicado

Muchas gracias, voy a echarle un vistazo y te digo. Saludos.

- - - - - Mensaje combinado - - - - -

Bueno, pues lo que has hecho sí es lo que yo quiero, pero a medias. Cuando voy a cambiar el formato condicional, ya no sale me sale. Porque por ejemplo si cambio el 30 por el azul, luego al darle sigue apareciendo el verde, cuando no debería.

Pero bueno, aún solucionando eso, necesito ver la fórmula, porque así con una flecha luego no sabría adaptarlo a la hoja en cuestión. De todas maneras te agradezco mucho tus intentos. Saludos.

publicado

No he tenido el mas mínimo problema al cambiar el formato condicional.

¿ Ya has tenido en cuenta que los formatos condicionales han de ser los mismos en todas las celdas de la columna A ?

Los colores se toman de los formatos condicionales de la celda A2.

En cuanto a esta frase " necesito ver la fórmula ", no se a que te refieres.

Estamos en el foro de macros, y una macro es lo que he empleado en el ejemplo.



Sub ContarColores()

x = 1
Range("C:C").Cells.Clear
For Each formato In Range("A2").FormatConditions
x = x + 1
Range("C" & x).Interior.Color = formato.Interior.Color
Next
MaxFila = x
For Each celda In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
For Each formato In celda.FormatConditions
Select Case formato.Operator
Case xlEqual
If celda.Value = CDbl(Mid(formato.Formula1, 2)) Then
For x = 2 To MaxFila
If Range("C" & x).Interior.Color = formato.Interior.Color Then
Range("C" & x) = Range("C" & x) + 1
End If
Next
End If
Case xlLess
If celda.Value < CDbl(Mid(formato.Formula1, 2)) Then
For x = 2 To MaxFila
If Range("C" & x).Interior.Color = formato.Interior.Color Then
Range("C" & x) = Range("C" & x) + 1
End If
Next
End If
Case xlEqual
If celda.Value > CDbl(Mid(formato.Formula1, 2)) Then
For x = 2 To MaxFila
If Range("C" & x).Interior.Color = formato.Interior.Color Then
Range("C" & x) = Range("C" & x) + 1
End If
Next
End If
End Select
Next
Next


End Sub


[/CODE]

[color=#333333]

Esta macro está asociada a la flecha azul, pero puedes ejecutar la macro desde la lista de macros con Alt+F8.

Sube tu archivo y plantea con exactitud que es lo que quieres hacer.

[/color]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.