Excel: use fórmula em formato de célula

Excel: use fórmula em formato de célula

Existe uma maneira de usar uma fórmula como formato de célula?

AFAIK, a formatação condicional permite apenas a formatação estática aplicada com base em alguma condição. Quero que o formato em si seja dinâmico. Por exemplo, quero definir a cor de uma célula como seu conteúdo (se o valor da célula for "vermelho", use vermelho como cor), sem definir uma regra de formatação condicional para cada cor.

Eu sei que isso pode ser feito com uma macro, mas não quero executar uma macro após cada alteração de célula.

Responder1

Não acredito que exista uma fórmula para isso, nem uma opção no gerenciador de formatação condicional.

Você pode, no entanto, usar o VBA. Aqui está uma pequena função para você começar:

Private Sub Worksheet_Change(ByVal Target As Range)

Application.EnableEvents = False

'Do nothing if more than one cell is updated, or if cell contents are deleted
If Target.Cells.Count > 1 Or IsEmpty(Target) Then
    Exit Sub
End If

Select Case LCase(Target.Value)
    Case "red"
        newcolor = RGB(255, 0, 0)
    Case "blue"
        newcolor = RGB(0, 0, 255)
    Case "chartreuse"
        newcolor = RGB(0, 255, 0)
    Case "lavender"
        newcolor = RGB(224, 176, 255)
    Case Else
        newcolor = Target.Interior.Color
End Select

Target.Interior.Color = newcolor
Application.EnableEvents = True

End Sub

Usar:

  1. Pressione Alt+ F11.
  2. No Project Explorer (painel esquerdo), clique duas vezes na planilha à qual deseja aplicar a formatação.
  3. Cole o código na janela.

A sub-rotina será executada automaticamente:

  • Quando você digita "vermelho", "azul", "chartreuse" ou "lavanda" acima emqualquercélula naquela planilha específica
  • Quando uma fórmula emqualquercélula retorna "vermelho", "azul", "chartreuse" ou "lavanda"

Você não precisa executar manualmente a função sempre que precisar colorir alguma célula.

Você também pode limitar as células nas quais esta função “operará” alterando a condição no bloco IF. Por exemplo, para colorir células na colunaCsomente, você pode alterar o bloco IF acima para ff:

If Target.Cells.Count > 1 Or Target.Column <> 3 Then
    Exit Sub
End If

Claro, você teria que salvar sua pasta de trabalho como um documento habilitado para macro.

Responder2

até onde eu sei, além de adicionar um formato condicional para cada cor, você não pode fazer isso sem uma macro. pelo lado positivo, não deve demorar muito para fazer um para cada cor que você usa, eu diria um processo de 5 minutos.

Responder3

Estou de acordo com o outro autor da postagem, pois é provável que você precise usar uma macro. Você não teria que executar a macro manualmente todas as vezes, pois poderia atribuí-la a umMudança de planilhaevento.

Clique na Microsoft Excel Objectssua pasta VBA Projectno VBE e clique duas vezes em ThisWorkbookpara gerar um stub de código. Selecione Worksheetno lado esquerdo e, em seguida, selecione SheetChangeno lado direito.

insira a descrição da imagem aqui

insira a descrição da imagem aqui

Acontece que o exemplo que vinculei usa esse evento para controlar a cor da célula (você teria que atualizar o código para usar a string "red", "green", "blue"em vez da instrução case com os valores numéricos.

informação relacionada