
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:
- Pressione Alt+ F11.
- No Project Explorer (painel esquerdo), clique duas vezes na planilha à qual deseja aplicar a formatação.
- 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 Objects
sua pasta VBA Project
no VBE e clique duas vezes em ThisWorkbook
para gerar um stub de código. Selecione Worksheet
no lado esquerdo e, em seguida, selecione SheetChange
no lado direito.
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.