Preenchimento automático de cores de acordo com os valores da célula da planilha

Preenchimento automático de cores de acordo com os valores da célula da planilha

Pergunta :É possível preencher cada célula de uma planilha com uma cor cujo valor da escala de cinza seja igual ao valor da célula?

Explicação:

Considere que tenho uma planilha da seguinte forma:

insira a descrição da imagem aqui

Todos os valores estão entre 0-255 (que corresponde a 256 cores em tons de cinza). Agora quero preencher cada célula com a cor cujo valor é o valor da célula. Portanto, a saída esperada é a seguinte:

insira a descrição da imagem aqui

Além disso, veja se a cor da fonte em cada célula é preta ou branca, correspondendo à cor de fundo.

Existe algum método simples no Excel para fazer isso em poucas etapas ou de uma só vez?

Responder1

Crie uma macro que itere pelas células, leia o valor na célula e atribua-o à cor assim:

Range("A1:A6").Interior.Color = RGB(200,160,35)

Responder2

TheUser1024 está certo e tem meu voto.

Aqui está uma solução pronta 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 não será quebrado em caso de strings ou 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

informação relacionada