Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

VBA: Recuperar el color con DisplayFormat

Un lector consultaba por un post publicado hace algún tiempo (ver).

El comentario del usuario era:
[...]Muchas gracias publicar esta macro, es exactamente lo que necesito , pero lamentablemente no me esta funcionando. Me arrojo siempre el mismo numero independientemente de color que que tenga la celda ,14. Estoy usando tres tipos de colores para el formato condicional Verde Rojo y amarillo[...]


Lo que veremos hoy es una alternativa a lo publicado que me permite recuperar el color de un objeto Range a través de su propiedad .DisplayFormat.

Ojo!! que tiene un par de inconvenientes:
1- es una propiedad de solo lectura, por lo que no podremos modificar nuestras celdas empleando esta propiedad.
2-Únicamente se puede emplear en procedimientos Sub (y NO en Function!!), por lo que no podremos generar UDF para recuperar el color de la celda (tal como se empleaba en el post anterior comentado).
Si lo intentas comprobarás que tu UDF te devolverá siempre un error de #¡VALOR!


Con estas condiciones presentes, veamos cómo podemos recuperar el color de relleno y de la fuente de nuestras celdas.



Abrimos la ventana de código de nuestro módulo estándar y añadimos el siguiente código:

Sub Color_Celda()
'recorremos el rango
For Each celda In Range("A2:A7")
'y recuperamos el color de relleno y fuente
'ya provenga de formato o formato condicional
celda.Offset(0, 2).Value = celda.DisplayFormat.Interior.ColorIndex
celda.Offset(0, 3).Value = celda.DisplayFormat.Font.ColorIndex
Next celda

End Sub


Tras ejecutarlo comprobaremos cómo nos devuelve los mismos valores que empleando la función del post publicado tiempo atrás tiempo (ver), tanto si el color proviene de un Formato 'normal' o uno condicional.



This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

VBA: Recuperar el color con DisplayFormat

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×