buscar formato de color en celda

12/05/2006 - 12:53 por luis | Informe spam
hola,

en el siguiente enlace hay una pregunta sobre cómo sumar celdas con un
formato específico, en este caso negrita.

http://www.microsoft.com/office/com...sloc=es-es

un par de cosas:
1) parece q la función no se actualiza sóla, tenemos q reeditarla y aceptar
para q tenga en cuenta las modificaciones de negrita (es decir, si pongo una
celda en negrita, o le quito la negrita). Sin embargo, los valores sí los
actualiza (si existe un 3 en negrita y lo pongo como 4, la suma se actualiza)
2) cómo sería sumar celdas con un determinado formato de color? es decir,
sumar las celdas q estén escritas en verde, o en rojo...

PS: sé cómo funciona el tema de RGB (creo)

Gracias

Preguntas similare

Leer las respuestas

#1 David
12/05/2006 - 15:30 | Informe spam
Pueden haber muchas variantes para elaborar una función como la que necesitas
(sumar celdas según su color de relleno), pero yo prefiero usar la siguiente:

Function SumarColor(Rango_A_Sumar As Range, Celda_De_Muestra As Range)
Dim MiColor As Long, MiSuma As Double
MiColor = Celda_De_Muestra.Interior.ColorIndex
MiSuma = 0
For Each x In Rango_A_Sumar.Cells
If x.Interior.ColorIndex = MiColor Then MiSuma = MiSuma + x.Value
Next
SumarColor = MiSuma
End Function


Ahora bien, lo que no he logrado resolver es que la fórmula se actualice
automáticamente al cambiar el color o el formato de otras celdas.
Aparentemente una modificación al formato no es detectada por el evento
"change", por lo que tendrás que actualizar la hoja (F9) cada vez que quieras
que la función se recalcule.




"luis" escribió:

hola,

en el siguiente enlace hay una pregunta sobre cómo sumar celdas con un
formato específico, en este caso negrita.

http://www.microsoft.com/office/com...sloc=es-es

un par de cosas:
1) parece q la función no se actualiza sóla, tenemos q reeditarla y aceptar
para q tenga en cuenta las modificaciones de negrita (es decir, si pongo una
celda en negrita, o le quito la negrita). Sin embargo, los valores sí los
actualiza (si existe un 3 en negrita y lo pongo como 4, la suma se actualiza)
2) cómo sería sumar celdas con un determinado formato de color? es decir,
sumar las celdas q estén escritas en verde, o en rojo...

PS: sé cómo funciona el tema de RGB (creo)

Gracias
Respuesta Responder a este mensaje
#2 luis
12/05/2006 - 16:57 | Informe spam
ok gracias, funciona muy bien

"David" escribió:

Pueden haber muchas variantes para elaborar una función como la que necesitas
(sumar celdas según su color de relleno), pero yo prefiero usar la siguiente:

Function SumarColor(Rango_A_Sumar As Range, Celda_De_Muestra As Range)
Dim MiColor As Long, MiSuma As Double
MiColor = Celda_De_Muestra.Interior.ColorIndex
MiSuma = 0
For Each x In Rango_A_Sumar.Cells
If x.Interior.ColorIndex = MiColor Then MiSuma = MiSuma + x.Value
Next
SumarColor = MiSuma
End Function


Ahora bien, lo que no he logrado resolver es que la fórmula se actualice
automáticamente al cambiar el color o el formato de otras celdas.
Aparentemente una modificación al formato no es detectada por el evento
"change", por lo que tendrás que actualizar la hoja (F9) cada vez que quieras
que la función se recalcule.




"luis" escribió:

> hola,
>
> en el siguiente enlace hay una pregunta sobre cómo sumar celdas con un
> formato específico, en este caso negrita.
>
> http://www.microsoft.com/office/com...sloc=es-es
>
> un par de cosas:
> 1) parece q la función no se actualiza sóla, tenemos q reeditarla y aceptar
> para q tenga en cuenta las modificaciones de negrita (es decir, si pongo una
> celda en negrita, o le quito la negrita). Sin embargo, los valores sí los
> actualiza (si existe un 3 en negrita y lo pongo como 4, la suma se actualiza)
> 2) cómo sería sumar celdas con un determinado formato de color? es decir,
> sumar las celdas q estén escritas en verde, o en rojo...
>
> PS: sé cómo funciona el tema de RGB (creo)
>
> Gracias
Respuesta Responder a este mensaje
#3 J.P.
12/05/2006 - 22:33 | Informe spam
Este codigo lo vi en este foro y creo que te servira, en la hoja donde
tienes la formula agrega este codigo.

Private Sub worksheet_selectionchange(ByVal target As Range)
Application.ScreenUpdating = True
End Sub

pasos:
vaya a herramientas
macro
editor de visual basic
y selecciona la hoja donde tienes la formula

Espero que te sirva
Respuesta Responder a este mensaje
#4 David
13/05/2006 - 01:26 | Informe spam
Gracias por la idea.

Modifiqué un poco tu código, pues la idea no es actualizar la pantalla, sino
forzar a Excel a recalcular la hoja:

Private Sub worksheet_selectionchange(ByVal target As Range)
Application.Calculate
End Sub

y en la función:

Function SumarColor(Rango_A_Sumar As Range, Celda_De_Muestra As Range)
Application.Volatile '<--[ AGREGUE ESTA LINEA ]
Dim MiColor As Long, MiSuma As Double
MiColor = Celda_De_Muestra.Interior.ColorIndex
MiSuma = 0
For Each x In Rango_A_Sumar.Cells
If x.Interior.ColorIndex = MiColor Then MiSuma = MiSuma + x.Value
Next
SumarColor = MiSuma
End Function


Esto mejora mucho, pero aún así hay que hacer "algo" para que la función se
actualice: al cambiar el color de una celda, hay que moverse a otra celda
para que la función se actualice. Es mucho más cómodo que pulsar F9, pero
hay que saberlo para evitar errores...

Gracias, JP!



"J.P." escribió:

Este codigo lo vi en este foro y creo que te servira, en la hoja donde
tienes la formula agrega este codigo.

Private Sub worksheet_selectionchange(ByVal target As Range)
Application.ScreenUpdating = True
End Sub

pasos:
vaya a herramientas
macro
editor de visual basic
y selecciona la hoja donde tienes la formula

Espero que te sirva


Respuesta Responder a este mensaje
#5 Francisco Mty
14/05/2006 - 01:13 | Informe spam
Revisa este link para mas referencias:

http://support.microsoft.com/kb/164317/es

Saludos
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida