Baixe a apostila de exemplo
Este tutorial irá demonstrar como contar ou somar células de uma determinada cor de fundo usando o VBA.
Considere o seguinte intervalo no Excel.
Não há função embutida do Excel para contar células coloridas. Em vez disso, devemos criar uma função definida pelo usuário usando VBA.
Contar células - criar uma função personalizada VBA
Contar quantas células têm uma determinada cor usando VBA é uma questão de criar uma função definida pelo usuário (UDF) que percorrerá todas as células no intervalo e determinará se a cor de fundo de cada célula corresponde à cor de fundo que você estão testando e usando essa função na planilha do Excel.
No VBA, criamos uma função para contar as células selecionadas.
12345678910111213141516 | Função CountCellsByColor (rng As Range, ColorCell As Range) As DoubleDim dblCount As DoubleDim rngCell As Range'Loop através de cada célula no intervaloPara cada rngCell In rng'verifique se a cor do interior é a mesma cor da célula que você selecionouSe rngCell.Interior.Color = ColorCell.Interior.Color EntãoIf IsNumeric (rngCell.Value) = True Then'aumentar a contagem em 1 se a cor estiver correta.dblCount = dblCount + 1Fim seFim sePróximo'Retorne o valor para o ExcelCountCellsByColor = dblCountFunção Final |
Em seguida, use esta função na planilha para retornar o valor.
1 | = CountCellsByColor (B2: E10, G4) |
- Clique na célula laranja em G4 e clique em Inserir Função.
- Selecione Usuário definido como a categoria e, em seguida, selecione CountCellsByColor como a função a ser usada.
- Clique OK.
- Destaque o intervalo que contém todas as células coloridas.
- Selecione os ColorCelle clique em OK.
Repita o processo para contar as células com uma cor de fundo verde.
1 | = CountCellsByColor (B2: E10, G5) |
Células de soma - criar uma função VBA personalizada
Criamos uma função personalizada semelhante no VBA para somar os valores das células de uma determinada cor.
12345678910111213141516 | Função SumCellsByColor (rng As Range, ColorCell As Range) As DoubleDim dblSum As DoubleDim rngCell As Range'Loop através de cada célula no intervaloPara cada rngCell In rng'verifique se a cor do interior é a mesma cor da célula que você selecionouSe rngCell.Interior.Color = ColorCell.Interior.Color EntãoIf IsNumeric (rngCell.Value) = True Then'adicione o valor à sua variável se a cor estiver corretadblSum = dblSum + rngCell.ValueFim seFim sePróximo'Retorne o valor para o ExcelSumCellsByColor = dblSumFunção Final |
Em seguida, usaríamos novamente esta função na planilha para somar as células necessárias.
1 | = SumCellsByColor (B2: E10, G7) |