Pregunta :¿Es posible llenar cada celda de una hoja de cálculo con un color cuyo valor en escala de grises sea el mismo que el valor de la celda?
Explicación :
Considere que tengo una hoja de cálculo de la siguiente manera:
Todos los valores se encuentran entre 0 y 255 (que corresponde a 256 colores en escala de grises). Ahora quiero llenar cada celda con el color cuyo valor es el valor de la celda. Entonces el resultado esperado es el siguiente:
Además, observe que el color de fuente en cada celda es blanco o negro, correspondiente al color de fondo.
¿Existe algún método sencillo en Excel para realizar esto en unos pocos pasos o todos a la vez?
Respuesta1
Cree una macro que recorra sus celdas, lea el valor en la celda y lo asigne al color de esta manera:
Range("A1:A6").Interior.Color = RGB(200,160,35)
Respuesta2
TheUser1024 tiene razón y tiene mi voto.
Aquí hay una solución lista para usar:
Public Sub Demo()
Dim cel As Range
Dim myRange As Range
Set myRange = Range("A1:E10")
For Each cel In myRange
cel.Interior.Color = RGB(cel.Value, cel.Value, cel.Value)
If cel.Value > 127 Then
cel.Font.Color = RGB(0, 0, 0)
Else
cel.Font.Color = RGB(255, 255, 255)
End If
Next cel
End Sub
Editar:
Este código no se romperá en caso de cadenas o valores negativos...
Public Sub Demo()
Dim cel As Range
Dim greytone As Long
Dim myRange As Range
Set myRange = Range("A1:E10")
For Each cel In myRange
greytone = CLng(Abs(Val(cel.Value)))
cel.Interior.Color = RGB(greytone, greytone, greytone)
If greytone > 127 Then
cel.Font.Color = RGB(0, 0, 0)
Else
cel.Font.Color = RGB(255, 255, 255)
End If
Next cel
End Sub