Rellenar colores automáticamente según los valores de la celda en la hoja de cálculo

Rellenar colores automáticamente según los valores de la celda en la hoja de cálculo

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:

ingrese la descripción de la imagen aquí

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:

ingrese la descripción de la imagen aquí

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

información relacionada