Determinar colores en el formato personalizado de números

jueves, agosto 06, 2009

Uno de los blogs que sigo, Bacon Bits, trae una nota sobre cómo determinar el color de un formato personalizado de números.

En notas anteriores he explicado que podemos determinar el color de un formato de número condicionalmente.

Por ejemplo, si queremos que la fuente de todo número superior a 1000 sea verde, números menores de 500 aparezcan en rojo y los restantes en negro. podemos usar este formato personalizado

[Verde][>1000]General;[Rojo][<500]general;[negro]general

Excel formato numerico personalizado



Convengamos que nuestra idea del verde es diferente de la que parece tener Microsoft.

Una solución es renunciar al verde y usar el azul

Excel formato numerico personalizado

Otra solución es usar el número de índice del color en la paleta en lugar del nombre explícito del color. De esta manera tenemos total control del color de la fuente.


El único problema a resolver es saber cuál es el número de índice del color que queremos usar. Para averiguar el número de índice del color podemos usar la técnica que mostramos con las macrofunciones de XLM o una macro como ésta:

Sub nr_color()
    Dim cell As Range, rngNrColor As Range
    
    Set rngNrColor = Application.InputBox(prompt:="select range", Type:=8)
    
    For Each cell In rngNrColor
        cell.Offset(0, 1).Interior.ColorIndex = cell.Value
    Next
    
End Sub


En una hoja creamos un rango con una serie de números del 1 al 56 (por ejemplo A1:A56), corremos la macro y obtenemos esta lista (para facilitar la visualización he divido el rango en tres columnas)

Excel formato numerico personalizado

Para usar el verde cuyo número de índice (en mi paleta) es el 10, modificamos el formato personalizado de esta manera

[Color10][>1000]General;[Rojo][<500]general;[negro]general>

Excel formato numerico personalizado

Es decir, usamos “Color” y el número de índice.


Technorati Tags:

6 comments:

ddTraDa 08 agosto, 2009 04:18  

Excelente, no conocía este truco. Te felicito por el excelente blog y tu fantástico aporte.

José de Diego

ddTraDa 08 agosto, 2009 04:43  

Jorge, a propósito de tu post, te comento un truco que armé para obtener un indicador tipo semáforo, es decir una especie de indicador circular con colores rojo, amarillo y verde (que ya viene en la versión 2007, pero que puede ser útil para los que siguen con la 2003 o anteriores).

Supongamos que tenemos números que van del 1 al 10, a los que están en el rango 1 al 3 les corresponde el rojo, a los que están entre el 4 y el 6 el amarillo y a los mayor o igual a 7 el verde.

Al rango de datos le asignamos la fuente WEBDINGS, en conjunto con el siguiente código de formato:

[Color 10][>=7]"n";[Amarillo][>=4]"n";[Rojo]"n"

La trampilla está en que todos los números los hacemos aparecer como "n", que en la fuente webdings es el círculo. EL color es el que se asigna con los códigos, que complementé con el verde que nos enseñaste en el post.

Si en lugar de webdings, usamos la fuente windings, el círculo cambia por un cuadrado.

Si quieres un archivo con ejemplo te lo envío.

Saludos.

Anónimo,  31 octubre, 2009 15:52  

Jorge, tengo una consulta.
¿Es posible, en Excel 2003, aplicar un color para varias entradas de texto personalizadas.?
Ej:
"a" = que aparezca en color rojo
"b" = que aparezca en color verde
"c" = que aparezca en color negro
etc...

José Bustamante

Jorge L. Dunkelman 31 octubre, 2009 17:25  

No tengo claro que quieres decir con "entrada". Si nos referimos al valor de la celda, podemos usar Formato Condicional, que en Excel 2003 permite hasta tres condiciones. Podemos ampliar el número de condiciones con el complemento desarrollado por Frank Kabel y Bob Phillips (se puede descargar del enlace en esta nota.

JAIME GARCIA CHAVEZ 07 julio, 2013 23:06  

Hola Jorge

Resulta que tengo una lista en excel con datos numéricos y distintos colores de fuente; deseo ordenarlos por el color sin usar los comandos ordenar filtrar
Gracias

Jorge Dunkelman 08 julio, 2013 07:24  

Tendrás que usar Vba (macro). Pero no entiendo cuál puede ser el motivo para no usar el comando "ordenar".

Publicar un comentario

Google+ Followers

Seguidores

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP