O Excel não oferece uma função nativa para contar células por cor de preenchimento, mas permite que você crie suas próprias funções usando o VBA (Visual Basic for Applications) — a linguagem de programação integrada ao Excel. Uma vez criada, a função personalizada aparece na lista de funções disponíveis e pode ser usada na planilha exatamente como o CONT.SE ou o SOMASE. Você digita o nome da função, passa o intervalo e a célula de referência de cor, e o resultado aparece automaticamente. Neste artigo iremos mostrar como criar essa função VBA passo a passo, com o código necessário e a explicação de cada parte.
Vídeo aula sobre como contar células coloridas no Excel
Assista ao vídeo abaixo, caso prefira aprender como contar células coloridas no Excel assistindo a um vídeo.
Não se esqueça de se INSCREVER no nosso canal.
E coloque o seu melhor e-mail abaixo para receber todas as nossas novidades em primeira mão.
O que é uma função personalizada VBA e como ela funciona
No VBA do Excel, é possível criar dois tipos de código: Sub-rotinas (macros que executam ações quando chamadas) e Functions (funções que calculam e retornam um valor). Uma Function VBA funciona exatamente como as funções nativas do Excel — ela recebe argumentos, processa dados e retorna um resultado. A diferença é que você escreveu o código que define o que ela faz, em vez de usar uma função que a Microsoft já implementou.
Para criar uma Function que conta células por cor, você escreve um código que percorre cada célula de um intervalo, compara a cor de preenchimento de cada uma com a cor de uma célula de referência e incrementa um contador quando as cores correspondem. Ao final do loop, a função retorna o contador — que é o número de células com aquela cor. Esse código é escrito no editor VBA do Excel e fica armazenado na pasta de trabalho onde foi inserido.
A Microsoft disponibiliza um código oficial para essa funcionalidade em sua base de conhecimento. O código pode ser adaptado para ter os nomes dos argumentos em português, facilitando o uso da função por usuários brasileiros. A adaptação mais comum é mudar os nomes internos do código de inglês para português, mantendo a lógica de funcionamento intacta. O resultado é uma função que se comporta como qualquer outra função do Excel, mas que foi criada por você e faz algo que o Excel sozinho não faz.
O código VBA para a função de contar por cor
O código da função personalizada que conta células por cor tem a seguinte estrutura básica em VBA. Primeiro, você define a função com seu nome e os parâmetros que ela recebe. Para a função de contar por cor, os dois parâmetros são: o intervalo de células que será analisado (do tipo Range) e a célula que tem a cor de referência (também do tipo Range). O valor de retorno da função é um número inteiro longo (Long), pois é a contagem de células.
Dentro da função, você inicializa um contador em zero e usa um loop For Each para percorrer cada célula do intervalo fornecido. Para cada célula, compara a propriedade Interior.ColorIndex (que representa a cor de preenchimento como um número) da célula atual com a mesma propriedade da célula de referência. Quando as duas são iguais, incrementa o contador em 1. Ao terminar o loop, atribui o valor do contador ao nome da função — essa é a forma de retornar o resultado em VBA.
Em código VBA, a estrutura seria: Function ContarCor(intervalo As Range, corBuscada As Range) As Long — seguido da declaração de uma variável célula e do contador, o loop For Each célula In intervalo com o If para comparar as cores, o incremento do contador quando corresponde, e a linha final ContarCor = contador que retorna o resultado. Esse é o esqueleto da função. O código completo e funcional está disponível na base de conhecimento da Microsoft, onde a empresa documenta essa funcionalidade e disponibiliza o código para uso livre.
Inserindo o código no editor VBA do Excel
Para inserir o código da função no Excel, você precisa acessar o editor VBA. A forma mais rápida é pressionar Alt+F11 — esse atalho abre o editor VBA diretamente de qualquer planilha do Excel. Uma janela separada se abre, com a estrutura do projeto VBA no painel esquerdo e a área de código no painel direito.
No editor VBA, com o projeto da sua pasta de trabalho selecionado no painel esquerdo, clique com o botão direito no nome da pasta de trabalho e escolha Inserir, Módulo. Um módulo em branco é criado e aparece na área de código à direita. É nessa área de código do módulo que você cola ou digita o código da função. Após inserir o código, salve o arquivo — e atenção aqui: para salvar um arquivo que contém código VBA, o formato precisa ser .xlsm (Pasta de Trabalho Habilitada para Macro do Excel). Se você tentar salvar como .xlsx, o Excel avisa que o código VBA será perdido.
Após salvar o arquivo .xlsm com o código no módulo, a função está disponível na planilha. Você pode fechar o editor VBA (Alt+F4 no editor ou simplesmente clicar no X da janela do editor) e voltar para a planilha normalmente. A função criada aparecerá na lista de sugestões quando você começa a digitar o nome dela em uma célula, assim como qualquer outra função do Excel.
Testando a função após a criação
Com o código inserido e o arquivo salvo, teste a função em uma área da planilha que tenha células com cores de preenchimento diferentes. Selecione uma célula vazia e comece a digitar o nome da função que você criou. Se o nome for “ContarCor”, por exemplo, o Excel vai mostrar “ContarCor” na lista de sugestões conforme você digita — isso confirma que a função foi reconhecida corretamente.
Complete a fórmula passando o intervalo de células coloridas como primeiro argumento e a célula que tem a cor de referência como segundo argumento. Por exemplo: =ContarCor(A1:A20;C1) onde A1:A20 é o intervalo com as células coloridas e C1 é uma célula com o preenchimento verde (ou qualquer cor que você quer contar). Pressione Enter e a função retorna a contagem de células com a mesma cor de preenchimento de C1 no intervalo A1:A20.
Se você curtiu esse artigo onde mostramos como criar uma função personalizada em VBA para contar células coloridas no Excel, compartilhe com as suas redes sociais e não se esqueça de deixar um comentário aqui embaixo caso você tenha ficado com alguma dúvida.