Truco Excel. Formatos condicionales para crear rango de colores

15 Ene

Un truco de Excel poco ortodoxo. Aprovechar los colores que nos ofrece un formato condicional sin necesidad de emplear el formato condicional para crear un rango de colores. Parece un trabalenguas pero puede ser muy útil cuando trabajamos con Visual Basic. En mi caso particular es muy útil disponer de estas paletas de colores para hacer mapas mucho más vistosos. El truco es muy sencillo empezamos por escribir números del 1 hasta el número de colores que deseamos y elegimos el formato condicional a aplicar:

Para el ejemplo ponemos 20 números y elegimos el formato condicional donde el verde significa mayor y el rojo significa menor. Cualquier intento de copiar formatos o de obtener el color de la celda con Visual Basic se complica bastante. Y aquí viene el truco “poco brillante pero práctico”. Lo que hacemos es copiar los datos con el formato de color y pegarlo en Word:

Desde Word ya podemos pegarlo en Excel y no tendremos formatos condicionales que nos impidan identificar el color de la celda. En el blog ya hablamos de ello en una ocasión y aplicando esa sencilla macro obtenemos:

Una forma poco elegante pero sencilla de obtener rangos de colores en Excel. Yo hago virguerías con este truco. Saludos.

2 respuestas a «Truco Excel. Formatos condicionales para crear rango de colores»

  1. Con esta sencilla macro vinculada a un botón en la hoja donde establezcas el formato condicional, te escribirá el número del color y el color en la columna de la derecha.

    Public Function setColorRangeValue()
    Dim rcelda As Range

    For Each rcelda In Selection
    With rcelda
    With Offset(0, 1)
    .Value = .DisplayFormat.Interior.Color
    .Interior.Color = .DisplayFormat.Interior.Color
    End With
    End With
    Next

    End Function

  2. Perdón, he querido simplificar el código y me colé con el último With.

    Public Function setColorRangeValue()
    Dim rcelda As Range

    For Each rcelda In Selection.Cells
    With rcelda
    .Offset(0, 1).Value = .DisplayFormat.Interior.Color
    .Offset(0, 1).Interior.Color = .DisplayFormat.Interior.Color
    End With
    Next

    End Function

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *