
Usando o VBA no Excel nossos limites na ferramenta se ampliam até onde a imaginação e o conhecimento de programação permitirem irmos. É possível ampliar em muito os recursos do próprio Excel além de até mesmo criarmos novos recursos.
Uma das coisas possíveis de se fazer, por exemplo, é colorir de forma automática, ou seguindo regras previamente programadas, células no Excel.
A linguagem VBA utiliza dois comandos diferentes para colorir células, fontes, entre outros. Temos a propriedade Color que utiliza cores hexadecimais e a propriedade ColorIndex que utiliza 56 cores pré-definidas no VBA, acessadas por números como segue na tabela abaixo.
| 1 | 29 | ||
| 2 | 30 | ||
| 3 | 31 | ||
| 4 | 32 | ||
| 5 | 33 | ||
| 6 | 34 | ||
| 7 | 35 | ||
| 8 | 36 | ||
| 9 | 37 | ||
| 10 | 38 | ||
| 11 | 39 | ||
| 12 | 40 | ||
| 13 | 41 | ||
| 14 | 42 | ||
| 15 | 43 | ||
| 16 | 44 | ||
| 17 | 45 | ||
| 18 | 46 | ||
| 19 | 47 | ||
| 20 | 48 | ||
| 21 | 49 | ||
| 22 | 50 | ||
| 23 | 51 | ||
| 24 | 52 | ||
| 25 | 53 | ||
| 26 | 54 | ||
| 27 | 55 | ||
| 28 | 56 |
Podemos usar o próprio excel para criar esta tabela e consultá-la posteriormente. Segue um exemplo, no excel 2013, para montarmos a tabela acima, usando VBA.
Habilitando a guia desenvolvedor no Excel
Para iniciarmos nosso código, precisamos habilitar a área do VBA no Excel. Para isso basta habilitar a guia desenvolvedor caso a mesma não esteja aparecendo.

Habilitando a guia desenvolvedor.
Em seguida clique em Visual Basic.

Visual Basic Comando
Na nova janela que se abrirá clique no menu Inserir > Módulo (figura abaixo).

Com isso estaremos criando uma macro.
Dentro do módulo digite o seguinte código.
Sub tab_cores()
Dim i, j As Integer
For i = 1 To 28
Range("A" & i).Select
Selection.Interior.ColorIndex = i
Cells(i, 2) = i
Next
For i = 1 To 28
Range("C" & i).Select
Selection.Interior.ColorIndex = i + 28
Cells(i, 4) = i + 28
Next
End Sub
Feche a janela e retorne ao excel.
Na guia Desenvolvedor clique no botão Macros.
Botão Macros
Na janelá que abrirá aparecerá a nossa Macro. Clique em Executar.

Janela macro – Excel
Pronto. Nosso código será executado e a tabela de cores montada no excel.
No código criado, repare no seguinte trecho:
Selection.Interior.ColorIndex = i
Como estamos dentro de um For o valor de i assumirá valores de 1 até 28, estes valores serão recebidos pela propriedade ColorIndex, colorindo assim o interior da seleção no momento.
Caso fosse utilizado a propriedade Color deveríamos trabalhar com cores Hexadecimais, os números de 1 a 56 só serão executados como cores na propriedade ColorIndex.
Dúvidas? Fique a vontade nos comentários.
Até a próxima!
![Inserindo datas no Excel usando um Mini Calendário (ou DatePicker) [versão 2024 atualizada]](https://aldesenvolvimento.com.br/wp-content/uploads/2024/11/Inserindo-datas-no-Excel-atraves-de-um-Mini-Calendario-ou-DatePicker_v3-1200x675.webp)


Blog Comments
Luiz
17/01/2015 at 16:58
Ola, Na minha deu um erro na 4ª linha. Cheguei a trocar o ponto e virgula por uma virgula e deu outro erro. Tem como mostrar solução?
Alexander
02/03/2015 at 22:00
Olá Luiz. Perdoe a demora. Vou retomar o site agora, estive um tempo parado.
Estava olhando o código, e por um erro na codificação do HTML, acabou saindo “Range(“A” & i)”, não sei se foi esse o caso, mas retire este “amp”. Já acertei no site, verifique agora por favor.
Qualquer dúvida pode entrar em contato pelo e-mail “[email protected]”.
Obrigado.
Jb Paulo
11/01/2016 at 15:49
Prez amigo.
Na minha macro que já tinha feito para colorir uma sequência de
células o 3 é preto. Pode me explicar?
Alexander
20/01/2016 at 18:17
Olá Jb Paulo.
Qual a versão do seu Excel? Pode enviar o código que usou na macro. Pois o 3 costuma ser a cor vermelha mesmo. Pesquisei rapidamente na internet e todas as outras referências que encontrei o 3 é vermelho. Seguem alguns links:
http://www.databison.com/wp-content/uploads/2009/08/excel-color-index-excel-2003.png
http://dmcritchie.mvps.org/excel/colors.htm
https://msdn.microsoft.com/pt-br/library/office/ff840443.aspx
Se puder cola aqui o código para eu analisar e ver se descubro.
Abraço.