Formatação condicional no Excel VBA
No Excel, todos nós usamos Formatação Condicional para destacar valores duplicados. Formatação principalmente condicional é usada para obter valores duplicados. Podemos destacar valores duplicados de várias maneiras. Podemos destacar os valores duplicados, variar valores específicos e também podemos definir a regra para concluir os critérios de formatação. Abaixo estão as funções variáveis disponíveis em Formatação condicional.
Mas e se pudermos automatizar esse processo de destacar valores duplicados ou qualquer tipo de valor conforme nossa exigência. Os critérios que podemos definir usando a Formatação Condicional no Excel também podem ser feitos no VBA. Para aplicar a formatação condicional, podemos escolher qualquer célula, intervalo disponível na planilha do Excel. A formatação condicional funciona apenas quando os critérios definidos atendem ao requisito. Senão, não mostrará nenhuma alteração de cor. Com a ajuda da Formatação condicional no VBA, podemos alterar a cor de qualquer célula ou conteúdo de célula, excluir a cor da célula ou remover a cor também. Além de alterar a cor da célula, podemos alterar o conteúdo da célula para texto em negrito ou itálico . Uma vez feito, também podemos desfazer todas as alterações.
Como usar a formatação condicional no Excel VBA?
Abaixo estão os diferentes exemplos para usar a Função de formatação condicional no Excel usando o código VBA.
Você pode fazer o download deste modelo do Excel de formatação condicional do VBA aqui - Modelo do Excel de formatação condicional do VBAFormatação Condicional VBA - Exemplo # 1
Temos dados de alguns números e texto, como mostrado abaixo nas colunas A e B. Agora já categorizamos a cor que precisamos fornecer ao número e ao texto que está na célula D2. Identificamos a cor amarela para o número 1 e o alfabeto A e a cor verde para o número 2 e o alfabeto B.
Embora a formatação condicional do VBA possa ser implementada no módulo, escrever o código para formatação condicional na planilha fará com que o código funcione apenas nessa planilha. Para isso, em vez de ir para a opção Módulo, clique na guia Inserir para inserir um módulo.
Etapa 1: agora, no primeiro menu suspenso, selecione Planilha, que será Geral por padrão e, no menu suspenso, selecione automaticamente a opção SelectionChange, como mostrado abaixo.
Etapa 2: quando fizermos isso, ela ativará automaticamente a subcategoria privada e a célula de destino será como Intervalo.
Código:
Sub Privado Worksheet_SelectionChange (destino de ByVal como intervalo) End Sub
Etapa 3: Agora escreva o código, primeiro defina uma variável MyRange como Range . Ou você pode escolher qualquer outro nome em vez de MyRange conforme sua escolha.
Código:
Private Sub Worksheet_SelectionChange (destino ByVal como intervalo) Dim MyRange As Range End Sub
Etapa 4: Use Set e escolha o intervalo definido, como mostrado abaixo.
Código:
Private Sub Worksheet_SelectionChange (destino ByVal como intervalo) Dim MyRange As Range Set MyRange = End Sub
Etapa 5: depois disso, selecione a planilha na qual queremos aplicar a formatação condicional. Aqui nossa planilha é Sheet1. Também podemos colocar a sequência como 1 em vez de escrever a Folha1. E, em seguida, selecione o intervalo dessas células que precisamos formatar. Aqui nosso intervalo é da célula A1 a B8.
Código:
Sub privado Worksheet_SelectionChange (destino ByVal como intervalo) Dim MyRange como intervalo definido MyRange = Worksheets ("Sheet1"). Range ("A1: B8") End Sub
Etapa 6: Agora abra um loop For Each-Next, como mostrado abaixo. E comece com a seleção da variável definida por célula MyRange .
Código:
Submarino particular Worksheet_SelectionChange (destino ByVal como intervalo) Dim MyRange como intervalo definido MyRange = Worksheets ("Sheet1"). Range ("A1: B8") para cada célula no MyRange Next End Sub
Etapa 7: Agora, abra novamente um loop If-Else.
Código:
Submarino particular Worksheet_SelectionChange (destino ByVal como intervalo) Dim MyRange As Range Defina MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Para cada célula em MyRange Se terminar se o próximo final Sub for
Essa é a região em que atribuímos as cores a todos os números e alfabetos disponíveis em nosso intervalo.
Etapa 8: escreva o código, se o valor da célula for 1 cor interior e a célula do intervalo selecionado, que é de A1 a B8, será verde. E para o verde, temos o código de cores atribuído a ele como 6.
Código:
Sub-planilha_SelectionChange privada (destino ByVal como intervalo) Dim MyRange como intervalo Defina MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Para cada célula em MyRange If Cell.Value Like "1" Então Cell.Interior.ColorIndex = 6 Fim Se Próximo Fim Sub
Etapa 9: Agora, para o valor número da célula 2. Caso contrário, se o valor da célula de qualquer célula do intervalo selecionado for 2, a cor interna dessa célula será amarela. E para o amarelo, temos o código de cores atribuído a ele como 4.
Código:
Sub-planilha_SelectionChange privada (destino ByVal como intervalo) Dim MyRange como intervalo Defina MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Para cada célula em MyRange If Cell.Value Like "1" Então Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Então Cell.Interior.ColorIndex = 4 End If Next End Sub
Para cada cor, temos códigos de cores diferentes atribuídos a eles, começando de 1 a 56. Enquanto o código de número 1 é atribuído à cor Preta e o número 56 é atribuído à cor cinza escuro. No meio, temos outros tons de cores diferentes, que podemos encontrar nos Documentos da Microsoft.
Etapa 10: se alguma das opções acima
condição é FALSE, então teríamos outro Else se condição em que se o valor da célula for A, a cor interior da célula será amarela. E para amarelo novamente, atribuiremos o código como 6.
Código:
Sub-planilha_SelectionChange privada (destino ByVal como intervalo) Dim MyRange como intervalo Defina MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Para cada célula em MyRange If Cell.Value Like "1" Então Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Like "2" Então Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Like "A" Então Cell.Interior.ColorIndex = 6 End If Next End Sub
Etapa 11: faça o mesmo para o valor da célula B, com o código de cor 4 como Verde.
Código:
Sub-planilha_SelectionChange privada (destino ByVal como intervalo) Dim MyRange como intervalo Defina MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Para cada célula em MyRange If Cell.Value Like "1" Então Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Como "2" Então Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Como "A" Então Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Como "B" Então Cell.Interior.ColorIndex = 4 Fim Se Próximo Fim Sub
Etapa 12: se alguma das condições não for VERDADEIRA, então para Else, preferimos selecionar o código de cores como Nenhum .
Código:
Sub-planilha_SelectionChange privada (destino ByVal como intervalo) Dim MyRange como intervalo Defina MyRange = Worksheets ("Sheet1"). Range ("A1: B8") Para cada célula em MyRange If Cell.Value Like "1" Então Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Como "2" Então Cell.Interior.ColorIndex = 4 ElseIf Cell.Value Como "A" Então Cell.Interior.ColorIndex = 6 ElseIf Cell.Value Como "B" Então Cell.Interior.ColorIndex = 4 Else Cell.Ineterios.ColorIndex = xlNone End If Next End Sub
Etapa 13: como o código é grande, para compilar cada etapa do código, pressione a tecla funcional F8. Se nenhum erro for encontrado, clique no botão play para executar o código inteiro de uma só vez. Veremos, de acordo com a regra de formatação condicional definida no código VBA, a cor das células foi alterada para os códigos de cores selecionados, como mostrado abaixo.
Etapa 14: esta formatação está corrigida. Se quisermos ver as alterações de cor, para teste, alteremos o valor de qualquer célula, considere A1 de 1 para 2. Veremos que a cor da célula A1 é alterada para Verde.
Isso ocorre porque declaramos que no intervalo A1 a B8, qualquer célula que contenha os números 1 e 2 e os alfabetos A e B será formatada em amarelo e verde, conforme mostrado nas células D2 a E3.
Prós e contras
- Dá saída instantânea se tivermos dados enormes. Considerando que, se aplicarmos o mesmo na opção de menu do Excel, levará um tempo para limpar a formatação do conjunto de big data.
- Também podemos executar todos os tipos de funções disponíveis no Excel para formatação condicional no VBA.
- Não é recomendável aplicar a formatação condicional do VBA para um pequeno conjunto de dados.
Coisas para lembrar
- Existem muitas outras funções além de destacar duplicatas e células com o mesmo valor. Podemos alterar o formato da célula de qualquer maneira, como negrito e itálico, alterando a cor da fonte, alterando a cor do plano de fundo, destacando os valores entre algum intervalo específico.
- Depois de aplicada a formatação condicional, podemos alterar a regra; de fato, também podemos excluir as condições de formatação. Para que nossos dados voltem ao normal.
- Podemos aplicar mais de uma condição em uma macro.
Artigos recomendados
Este é um guia para formatação condicional do VBA. Aqui discutimos como usar a função Formatação condicional do VBA do Excel, juntamente com exemplos práticos e modelo de excel para download. Você também pode consultar nossos outros artigos sugeridos -
- Copiar Colar Função no VBA
- Função Excel de Substring
- Subscrito VBA fora do intervalo
- Fórmula ISNUMBER do Excel
- Formatação condicional para datas no Excel