/ / Tarefas na agenda no Excel VBA

Tarefas na agenda no Excel VBA

Abaixo, vamos olhar para um programa em Excel VBA que define a cor de fundo de tarefas que estão no horário para verde e define a cor de fundo das tarefas que estão atrasadas para vermelho.

Situação:

Na Sheet1, 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 cada coluna até e incluindo a data de hoje. Hoje é 6 de junho. As tarefas X e Y estão no cronograma. Tarefa Z está atrasada (não "1" na célula E8).

Tarefas na agenda no Excel VBA

Crie um evento de alteração de planilha. Código adicionado ao evento de alteração de planilha será executado pelo Excel VBA quando você altera uma célula em uma planilha.

1. Abra o Editor do Visual Basic.

2. Clique duas vezes na Planilha1 (Planilha1) no Explorador de Projetos.

3. Escolha Planilha na lista suspensa à esquerda. Escolha Alterar na lista suspensa à direita.

Evento de Alteração de Planilha no Excel VBA

Adicione as seguintes linhas de código ao evento de alteração de planilha:

4. Declarar duas variáveis ​​do tipo inteiro.

Dim i As Integer, j As Integer

5. Adicione um Do While Loop.

Do While Cells(6 + i, 1).Value <> ""


    i = i + 1
Loop

Explicação: Para i = 0, o Excel VBA verifica a tarefa X, para i = 1, tarefa Y, etc. O Excel VBA deixa o loop Do While quando Cells (6 + i, 1) .Value é 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, supondo que a tarefa esteja no horário (isso não é necessariamente verdade, é claro).

Cells(6 + i, 1).Interior.ColorIndex = 4

8. Adicione outro Do While Loop.

Do While Cells(4, 2 + j).Value <= Date
    If Cells(6 + i, 2 + j).Value = 0 Then Cells(6 + i, 1).Interior.ColorIndex = 3
    j = j + 1
Loop

Nota: a função Data 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á agendada se existir um "1" em cada coluna até e incluindo a data de hoje. Se o Excel VBA encontrar um "0", define a cor de fundo da tarefa para vermelho.

9. Teste o programa. Por exemplo, indique que a tarefa Z em 6 de jun foi concluída. Como resultado, a tarefa Z ficará automaticamente verde.

Tarefas no resultado do cronograma

Leia também: