Sumar según formato de celda.

Hola saludos a todos, tengo hecha una tabla en la que reflejo si esta realizada una operación con el relleno de las celdas en verde y si no esta hecha en rojo.
Querría saber como puedo sumar el número de celdas en cada estado (rojas o verdes).
También me gustaría saber si cuando cambio el color de una celda en una hoja del libro puedo hacer que otra cambie de color automáticamente en otra hoja.
Muchas gracias.

1 respuesta

Respuesta
1
Las preguntas se hacen de una en una, te daré solución a la primera.
Tu puedes hacer cualquier cosa vía macro visual basic para excel, si sabes como. Si no encuentras ninguna función que te sirva tu puedes crearlas, como en este caso, una vez me vi en la obligación de hacer lo mismo que quieres tu y tuve que crear una función que te la adjunto ahora, la función te pedirá primeramente el rango en donde quieres sumar, tenga o no el color que desees, es decir, el rango entero de todos los valores y una celda de referencia que tenga el mismo formato de color a sumar y ya te suma.
Function SumaColorCelda(Rango As Range, Color)
Dim Col As Long
Dim Celda As Range
Dim Suma As Double
Col = ActiveCell.Interior.ColorIndex
For Each Celda In Rango
If Celda.Interior.ColorIndex = Col Then
Suma = Suma + Celda.Value
End If
Next
SumaColorCelda = Suma
End Function
Respecto de la segunda pregunta por supuesto que se puede, pero debes tener claro que código o numero es el color que andas buscando o con cual quieres reemplazarlo, pero esa es una pregunta aparte, te respondí la primera. Cierra la pregunta si era lo que buscabas y me evalúas, y luego generas una nueva pregunta con lo segundo que tu comentaste.
Fe de Erratas "Un cambio", en donde dice:
Col=Activecell.Interior.ColorIndex  debe decir:
Col=Color.Interior.ColorIndex
Perdona pero no estoy nada ducho en esto, las instrucciones que me has dado las he copiado en el editor de VB:
Sub s()
Dim Col As Long
Dim Celda As Range
Dim Suma As Double
Col = Color.Interior.ColorIndex
For Each Celda In Rango
If Celda.Interior.ColorIndex = Col Then
Suma = Suma + Celda.Value
End If
Next
SumaColorCelda = Suma
End Function
End Sub
No se si he hecho bien, pero al darle al play me dice que el calificador color (lo he subrayado) no es válido.
No se si es correcto lo que he hecho GRACIAS, de nuevo.
Por supuesto que no te va a funcionar, porque tu le pusiste Sub s(), y esto no es una SubRutina, es una función debes poner exactamente como te la envié, si te fijas más abajo dice: Function SumaColorCelda(Rango as Range, Color) esto significa que estas creado una función llamada SumaColorCelda cuyos rangos a usar son dos:
1) Rango que esta definido como un rango
2) Color que es la celda de donde obtendrá el valor que deseas sumar.
Esto lo debes copiar en un modulo de VBA en el menu buscar insertar y luego modulo, ahí lo pegas y desde excel en cualquier celda que quieras sumar debes ingresar la función como cualquier otra, es decir, =SumaColorCelda(Rango, Celda)
En donde Rango corresponde en donde están todos los valores que deseas sumar y Celda es la celda que tiene el mismo color que deseas sumar.
Espero haber sido más claro.
Function SumaColorCelda(Rango As Range, Color)
Dim Col As Long
Dim Celda As Range
Dim Suma As Double
Col = ActiveCell.Interior.ColorIndex
For Each Celda In Rango
If Celda.Interior.ColorIndex = Col Then
Suma = Suma + Celda.Value
End If
Next
SumaColorCelda = Suma
End Function
Mucho más claro, ya he creado la función en un módulo del editor de VB y luego la he insertado, he metido el rango (el conjunto de celdas ha sumar) y color (la celda con el color a sumar); pero no se que hago mal el resultado es cero con cualquiera de las dos lineas
Col = Color.Interior.ColorIndex
o la primera que me dijiste
Col = ActiveCell.Interior.ColorIndex
El resultado es el mismo, creo haber seguido tus instrucciones correctamente. Más gracias .
La única forma de saber si estas haciendo todo lo que te digo o no, es que me envíes el archivo que deseas sumar para verlo y comentarte cuales son las cosas que no estas considerando. ¿OK? Envíamelo a: [email protected]
Y de ahí seguimos conversando.
Hemos tenido un error de comunicación, pues tu fórmula funciona perfectamente, pero no es lo que yo pedía en mi consulta, te recuerdo "necesito sumar el NÚMERO DE CELDAS en rojo o verde"; no sumar los valores inscritos en ellas.
Saludos.
entonces solo basta con cambiar los que dice "suma = suma + celda.value" por "suma=suma + 1" y listo.
Lo siento Ramírez pero no acabo de conseguirlo, ahora si me suma el número de celdas del color indicado, pero si cambio el color de alguna celda no me actualiza la suma, tengo que insertar la función de nuevo.
No, solo debes tener en cuenta que el color sea exactamente el mismo color que tienes por contar, a veces según el excel, debes editar la fórmula y darle enter nuevamente.
El color es el mismo y manejo un office 97, yo esperaba algo más interactivo, que cambiando el color, cambie el total, igual que con valores numéricos Gracias de todas las formas.
Es lo que te puedo ofrecer, lo siento si no pudo satisfacer como tu lo querías, ¿Puedes por favor cerrar la pregunta y evaluarme?.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas