Abaixo, veremos um programa em Excel VBA que destaca a linha e coluna da célula ativa (célula selecionada). Este programa irá surpreender e impressionar seu chefe.
Situação:
Cada vez que mudamos a célula ativa na Planilha1, uma macro precisa ser executada. Você pode conseguir isso criando um evento de alteração de seleção de planilha.
1. Abra o Editor do Visual Basic.
2. Clique duas vezes em Plan1 (Plan1) no Project Explorer.
3. Escolha Planilha na lista suspensa à esquerda. Escolha SelectionChange na lista suspensa à direita.
Adicione as seguintes linhas de código ao evento Worksheet SelectionChange:
4. Declaramos quatro variáveis do tipo Inteiro. Um denominado rowNumberValue, um denominado columnNumberValue, um denominado ie outro denominado j.
Dim rowNumberValue As Integer, columnNumberValue As Integer, i As Integer, j As Integer
5. Primeiro, adicionamos a linha que altera a cor de fundo de todas as células para 'Sem preenchimento'.
Cells.Interior.ColorIndex = 0
6. Inicializamos a variável rowNumberValue com o número da linha da célula ativa e a variável columnNumberValue com o número da coluna da célula ativa.
rowNumberValue = ActiveCell.row
columnNumberValue = ActiveCell.column
7. Destacamos a coluna azul. Ou seja: todas as células com número de linha menor ou igual a rowNumberValue e número de coluna igual a columnNumberValue
Para i = 1 para rowNumberValue
Células (i, columnNumberValue) .Interior.ColorIndex = 37
Proximo eu
Explicação: para este exemplo (veja a imagem acima), rowNumberValue é igual a 12 e columnNumberValue é igual a 8. As linhas de código entre For e Next serão executadas doze vezes. Para i = 1, o Excel VBA colore a célula na interseção da linha 1 e coluna 8. Para i = 2, o Excel VBA colore a célula na interseção da linha 2 e coluna 8, etc.
Nota: em vez do número ColorIndex 37 (azul), você pode usar qualquer número ColorIndex.
8. De maneira semelhante, destacamos a linha azul. Ou seja: todas as células com número de linha igual a rowNumberValue e número de coluna menor ou igual a columnNumberValue.
Para j = 1 para columnNumberValue
Células (rowNumberValue, j) .Interior.ColorIndex = 37
Próximo j
9. Agora é hora de testar o programa. Baixe o arquivo Excel e veja como a linha e a coluna da Célula Ativa são destacadas cada vez que você muda a Célula Ativa.