Última atualização: agosto de 2021; Microsoft Excel 365, 2019, 2016.
No tutorial de hoje do VBA para Automação do Excel, aprenderemos como podemos alterar programaticamente a cor de uma célula com base no valor da célula.
Podemos usar essa técnica ao desenvolver um painel de status simples, por exemplo.
Configurar
Se você ainda não está desenvolvendo no Excel, recomendamos consultar nosso guia introdutório sobre Macros do Excel . Especificamente, você precisa certificar-se de que a guia Desenvolvedor esteja disponível na Faixa de Opções do Microsoft Excel, pois você a usará para escrever um código simples.
- Abra o Microsoft Excel. Observe que o código fornecido neste tutorial deve funcionar no Excel 2007 e posteriores.
- Em uma planilha vazia, adicione a seguinte tabela:

- Agora vá em frente e defina um intervalo nomeado pressionando: Fórmulas>>Definir nome

Alterando a cor do interior da célula com base no valor com Cell.Interior.Color
- Clique na entrada Desenvolvedor na Faixa de Opções.
- Pressione Visual Basic ou Alt+F11 para abrir o editor VBA do desenvolvedor.
- Em seguida, destaque a Planilha na qual você gostaria de executar seu código. Como alternativa, selecione um módulo que tenha seu código VBA.
- Vá em frente e cole este código. Em nosso exemplo, modificaremos a cor interna de um intervalo de células para valores RGB de célula específicos correspondentes às cores vermelha, amarela e verde.
- Especificamente, usamos o método Excel VBA Cell.Interior.Color e passamos o valor RGB correspondente ou índice de cores.
Sub Color_Cell_Condition()
Dim MyCell As Range
Dim StatValue As String
Dim StatusRange As Range
Set StatusRange = Range("Status")
For Each MyCell In StatusRange
StatValue = MyCell.Value
Select Case StatValue
Case "Progressing"
MyCell.Interior.Color = RGB(0, 255, 0)
Case "Pending Feedback"
MyCell.Interior.Color = RGB(255, 255, 0)
Case "Stuck"
MyCell.Interior.Color = RGB(255, 0, 0)
End Select
Next MyCell
End Sub
- Execute seu código – pressionando F5 ou Run>> Run Sub / UserForm.
- Você notará que o painel de status foi preenchido conforme mostrado abaixo:

- Salve seu código e feche seu editor VBA.