Contar celdas coloreadas

De nuevo Christian,
Referente a esta duda, comentarte que he estado consultando las respuestas de los días 8 y 19 de Enero, que tratan de la misma inquietud que tengo, y la verdad, no ha habido éxito.
Te comento, tengo el siguiente rango G4:I14, que se corresponden a 3 columnas donde G3 =0 puntos, H3=1 punto y I3 =2 puntos. En la columna rango G4:G14 puedo rellenar las celdas de color rojo (0 puntos); en la columna rango H4:H14 las puedo rellenar de color amarillo (1 punto), y la columna de rango I4:I14, las celdas las relleno de color verde (2 puntos).
Para entendernos, por cada fila tengo 3 posibilidades de color: rojo, amarillo y verde, y solamente se visualizará uno! (Esto lo he conseguido)...
¿La duda es como podría contar las celdas con color en cada una de estas columnas?

1 Respuesta

Respuesta
1
Bueno comprendo perfectamente tu consulta. La idea es construir una funciojn personalizada empleando Programación VBA con Excel. Me sorprende que no haya tenido éxito según la respuesta publicada en la fecha que me indicas.
Ahora acabo de entrar a la website de Todoexpertos.com . Se me ha amontonado de consultas. Dejame regresar al mes de Enero, revisar el código y finalmente responderte.
No te preocupes que te responderte por este mismo medio.
Lo prometido es deuda. Hagamos un ejemplo sencillo para comprender el caso:
***
1.- Realizar la siguiente distribución de datos en Hoja1 en las celdas que se indican:
A1=2 | B1=2 | C1=35
A2=9 | B2=30 | C2=22
A3=6 | B3=17 | C3=30
A4=1 | B4=13 | C4=59
A5=4 | B5=18 | C5=34
A6=3 | B6=13 | C6=44
A7=2 | B7=49 | C7=52
A8=3 | B8=49 | C8=10
***
2.- Pinta las siguientes celdas que se indican:
A2 (Amarillo)
A4 (Amarillo)
A6 (Amarillo)
====
B1 (Rojo)
B5 (Rojo)
====
C3 (Verde)
C7 (Verde)
C8 (Verde)
=====
***
3.- Ahora hagamos la fórmula en VBA. Haz ALT+F11 para abrir en Editor. Luego ve a "Menú Insertar" y haz click en "Modulo". Aparcera una ventana en blanco. En dicha ventana copia y pega el siguiente código:
Function QueColor(ByVal lacelda As Range)
On Error Resume Next
If lacelda.Interior.ColorIndex < 0 Then
lacelda = 0
Else
QueColor = lacelda.Interior.ColorIndex
End If
End Function

'******
4.- Ahora guarda tu archivo de Excel, guarda los cambios. Ahora regresa Excel y ve a "Menu Herramientas / Macro / Seguridad". En esa ventana asígnale el nivel de seguridad de "Medio". De nuevo guarda los cambios.
****
5.- Para resolver tu caso tenemos nuestros datos en A1:C8. Pero ademas emplearemos 3 columnas auxiliares de todos modos (Col DE, E y F)
****
6.- Ahora situate en la celda D1 e ingresa esta formula:
=QueColor(A1)
**
7.- Esta misma fórmula arrastrala hasta D8, Luego selecciona la primera columna con fórmulas (d1:d8) Y luego arrastra hacia la derecha hasta la columna F. Ahora las fórmulas abarcan desde D1:F8. Espero que hasta ahí estemos de acuerdo. Ahora haremos el resumen.
***
8.- Posicionate en la celda A12 que no hay nada y escribe la siguiente formula:
=SUMAR.SI(D1:D8;6;A1:A8)
[Fijate si tu separador de argumentos es punto y coma o coma. Yo use ";"]
**
9.- Ahora en la celda B12 ingresa esta otra:
=SUMAR.SI(E1:E8;3;B1:B8)
***
10.- Finalmente en la celda C12 ingresa esta ultima formula:
=SUMAR.SI(F1:F8;14;C1:C8)
******
11.- Los resultados en las celdas A12, B12 y C12 son 13, 20 y 92 respectivamente. La fórmulas funcionan!
12.- La fórmula QueColor() devuelve un numero, que en realidad es el código que tiene el color asignado a una celda. Al igual que nosotros tenemos un código que es nuestro nombre, así de esa manera también los colores tienen un código el cual se le puede identificar. Para Amarillo es 6, para Rojo es 3 y así. Es por ello que en el segundo argumentos de las tres fórmulas que te he dado varían.
13.- Las columnas auxiliares que hemos empleado puedes ocultarlas si deseas.
****
Espero haberte ayudado en tu caso. Después de ello dudo que tengas problemas. Seria bueno que hagas este ejemplo ilustrativo.
Muy buenas Christian, ante todo, gracias por tu respuesta y el ejemplo, más que ilustrativo, de como contar celdas coloreadas... de verdad, gracias!
Pero..., te comento,... hay un "problemilla"... las celdas coloreadas que quiero contar el color proviene de un formato condicional (a partir de una fórmula excel del tipo =SI(Y...)), es decir, tengo 3 posibilidades y cada una de ellas me arroja una celda vacía sin datos pero coloreada, bien de rojo, verde o amarillo. Para entendernos, no "pinto" las celdas manualmente...
Con el relleno de color manual las fórmulas que has propuesto funcionan, pero en el caso que el color provenga de un formato condicional, la fórmula =QueColor(celda) arroja "FALSO"..., y luego al contar las celdas, lógico, es 0...
No sé, si en lo que estoy "batallando" es complicarse un poco la vida... Si fuese así, según me comentes, finalizo la pregunta con la máxima puntuación... y hasta otra!
De nuevo, gracias!
Un saludo
Ahora estoy en refrigerio en estos momentos. He entrado solo un momento.
Apenas salga entro a la website de manera tranquila para evaluar el caso según me comentas.
Christian
OK Christian... ningún problema... de verdad!
Jordi
He encontrado un paquete de funciones UDF que realizan lo que pides. LO tengo en mi bandeja. Saliendo del trabajo iré a probarlas si funcionan o no. Espero que funcionen. Ahora estoy en refrigerio por el cual he entrado solo un momento. No te preocupes que de todos modos te tendré una respuesta final ante este tema
Christian
Acabo de enviarte un archivo donde esta la programación para realizar la función SumarColor()
Existen ejemplos dentro de el que realiza lo que deseas.
Al abrir el archivo deberás habilitar las macros. Para que funcione. Ademas te sugiero que en tu libro selecciones el nivel Medio de Seguridad yendo a Menu Herramientas / Macro / Seguridad.
Ante cualquier duda que tengas referente a Excel no olvides de realizarla por este medio.
De igual modo Jordserr, ante la ayuda ofrecida no olvides de finalizar y puntuar al final de esta página
Funciona, funciona!,..., la verdad cada día me sorprendo más, a la vez que aprendo,... gracias Christian por tu tiempo y... HASTA OTRA!,...
Gracias!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas