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.
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
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