Como fazer formatação condicional usando VBA no Microsoft Excel

Anonim

Vamos pintar uma pintura Monalisa e deixar Picasso para trás usando VBA. Prepare-se, prepare-se …

Esperar! Esperar! Tenha calma. Vamos apenas usar o VBA para fazer formatação condicional e é mais fácil do que pintar isso? pássaro em forma.

A sintaxe genérica da formatação condicional VBA

Se a condição for Range (range) .Interior.ColorIndex = 1-56

Dê sua verificação de condição na condição e, em seguida, formate seu intervalo usando a propriedade .iteriour.colorindex do objeto Range. O índice de cores possui 56 cores. Vá jogar Holi com eles e explore qual número contém qual cor.
Agora vamos entender com um exemplo

Exemplo: código VBA para formatar células condicionalmente

Então, esse é o cenário, temos uma lista de pessoas aleatórias com sua idade e faixa etária.
Como seria fácil se pudéssemos dizer a faixa etária de uma pessoa apenas olhando seus nomes.
Agora para fazer isso, eu quero o formato VBA Nome VERMELHO se ele for um adulto, AMARELO se ele for um adolescente e VERDE se ele for uma criança e nada se a célula estiver em branco.

Sub FormatUsingVBA () Dim rng As Range Dim lastRow As Long lastRow = Células (Rows.Count, 3) .End (xlUp) .Row Set rng = Range ("C2: C" & lastRow) Para Cada célula In rng Se célula. Value2 = "Adulto" Então Intervalo (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Então Intervalo (cell.Address) .Offset (0, -2). Interior.ColorIndex = 4 ElseIf cell.Value2 = "Adolescente" Then Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Else Range (cell.Address) .Offset (0, -2). Interior.ColorIndex = 0 End If Next célula End Sub

Para executar esse código diretamente da planilha, desenhei um botão na mesma planilha e atribuí essa macro a ele. Agora, sempre que você clicar no botão “Formatar”, seu código será executado e atualizará as células de nome com cores dependendo de sua faixa etária. Como? Vamos descobrir.

Explicação do código:

Dim rng As RangeDim lastRow As LongEstas duas linhas são declarações de variáveis. rng para Intervalo que contém a faixa etária e lastRow para obter o número da última linha não vazia. 
lastRow = Cells (Rows.Count, 3) .End (xlUp) .RowThis linha retorna o último número da linha na variável lastRow.
Set rng = Range ("C2: C" & lastRow) Esta linha define o intervalo começando em C2 e até a última linha. Isso torna seu código dinâmico. Você adiciona novas linhas aos seus dados e ele detectará e armazenará em um novo intervalo na variável rng.
Para cada célula In rng Se cell.Value2 = "Adulto" Then Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3 ElseIf cell.Value2 = "KID" Then Range (cell.Address). Offset (0, -2) .Interior.ColorIndex = 4 ElseIf cell.Value2 = "Adolescente" Então Intervalo (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 6 Outro Intervalo (cell.Address). Offset (0, -2) .Interior.ColorIndex = 0 End If Next cell 

Este é o segmento principal.

Para cada célula em rng 

A primeira linha executa o loop para todas as células em seu intervalo. Se cell.Value2 = "Adulto" Então
A próxima linha é uma verificação de condição. Ele verifica se o valor da célula atual é Adulto ou não.
Se sim, a próxima linha é executada, caso contrário, pula para a próxima se instrução.Range (cell.Address) .Offset (0, -2) .Interior.ColorIndex = 3
Agora, se a condição IF retornar TRUE, esta linha define a cor da célula para ColorIndex 3 que é para RED.

Da mesma forma, as instruções IF a seguir são executadas e executadas conforme especificado.

Então, sim, você pode formatar intervalos condicionalmente usando VBA. O método interior do objeto Range controla muitas outras propriedades de formatação. Você deve brincar com eles, não fará mal nenhum, mas você aprenderá definitivamente. E se você enfrentar qualquer dificuldade do que a que estou aqui. Faça suas perguntas na seção de comentários.

⇬ Fazer download do arquivo

Formatação condicional usando VBA no Microsoft Excel

Artigos populares:

50 atalhos do Excel para aumentar sua produtividade

Como usar a função PROCV no Excel

Como usar a função CONT.SE no Excel

Como usar a função SUMIF no Excel