Abaixo, veremos um programa em Excel VBA que define a cor de fundo de tarefas que estão dentro do cronograma para verde e define a cor de fundo das tarefas que estão atrasadas para vermelho.
Situação:
Na Folha1, temos três tarefas (X, Y, Z). Um "1" indica que uma tarefa foi concluída. Uma tarefa está programada se existir um "1" em todas as colunas até e incluindo a data de hoje. Hoje é 6 de junho. As tarefas X e Y estão dentro do cronograma. A tarefa Z está atrasada (sem "1" na célula E8).
Crie um evento de alteração da planilha. O código adicionado ao Evento de Alteração da Planilha será executado pelo Excel VBA quando você alterar uma célula em uma 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 Alterar na lista suspensa à direita.
Adicione as seguintes linhas de código ao evento de alteração da planilha:
4. Declare duas variáveis do tipo Inteiro.
Dim i As Integer, j As Integer
5. Adicione um Do While Loop.
Células Do While (6 + i, 1) .Value ""
i = i + 1
Ciclo
Explicação: Para i = 0, o Excel VBA verifica a tarefa X, para i = 1, a tarefa Y, etc. O Excel VBA deixa o loop Do While quando Cells (6 + i, 1) .Value está vazio (não há mais tarefas para verificar) .
Adicione as seguintes linhas de código (em 6, 7 e 8) ao Do While Loop.
6. Inicialize a variável j com o valor 0.
j = 0
7. Defina a cor de fundo de uma tarefa para verde, presumindo que a tarefa esteja dentro do cronograma (isso não é necessariamente verdade, é claro).
Células (6 + i, 1) .Interior.ColorIndex = 4
8. Adicione outro Do While Loop.
Células Do While (4, 2 + j) .Value <= Date
If Cells (6 + i, 2 + j) .Value = 0 Then Cells (6 + i, 1) .Interior.ColorIndex = 3
j = j + 1
Ciclo
Nota: a função Date retorna a data de hoje.
Explicação: Para i = 0, j = 0, o Excel VBA verifica a célula B6. Para i = 0, j = 1, o Excel VBA verifica a célula C6, etc. Uma tarefa está na programação se houver um "1" em todas as colunas até e incluindo a data de hoje. Se o Excel VBA encontrar um "0", ele definirá a cor de fundo da tarefa como vermelho.
9. Teste o programa. Por exemplo, indique que a tarefa Z em 6 de junho foi concluída. Como resultado, a tarefa Z ficará verde automaticamente.