/ / Tâches planifiées dans Excel VBA

Tâches prévues dans Excel VBA

Ci-dessous, nous examinerons un programme en Excel VBA qui définit la couleur de fond de tâches qui sont dans les temps en vert et définit en rouge la couleur d'arrière-plan des tâches en retard.

Situation:

Sur la feuille Sheet1, nous avons trois tâches (X, Y, Z). Un "1" indique qu'une tâche est terminée. Une tâche est en cours si un «1» existe dans chaque colonne jusqu’à la date d’aujourd’hui incluse. Aujourd’hui, il s’agit du 6 juin. Les tâches X et Y se déroulent comme prévu. La tâche Z est en retard (pas de "1" dans la cellule E8).

Tâches prévues dans Excel VBA

Créez un événement de changement de feuille de calcul. Le code ajouté à l'événement Modification de la feuille de calcul sera exécuté par Excel VBA lorsque vous modifiez une cellule dans une feuille de calcul.

1. Ouvrez Visual Basic Editor.

2. Double-cliquez sur Sheet1 (Sheet1) dans l'Explorateur de projets.

3. Choisissez Feuille de travail dans la liste déroulante de gauche. Choisissez Modifier dans la liste déroulante de droite.

Événement de changement de feuille de calcul dans Excel VBA

Ajoutez les lignes de code suivantes à l'événement de changement de feuille de calcul:

4. Déclarez deux variables de type Integer.

Dim i As Integer, j As Integer

5. Ajoutez une boucle Do While.

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


    i = i + 1
Loop

Explication: Pour i = 0, Excel VBA vérifie la tâche X, pour i = 1, la tâche Y, etc. Excel VBA laisse la boucle Do While lorsque les cellules (6 + i, 1) .Value est vide (plus de tâches à vérifier).

Ajoutez les lignes de code suivantes (en 6, 7 et 8) à la boucle Do While.

6. Initialisez la variable j avec la valeur 0.

j = 0

7. Définissez la couleur d'arrière-plan d'une tâche sur verte en supposant qu'une tâche est en cours (ce n'est pas nécessairement vrai).

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

8. Ajoutez une autre boucle Do While.

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

Remarque: la fonction Date renvoie la date du jour.

Explication: Pour i = 0, j = 0, Excel VBA vérifie la cellule B6. Pour i = 0, j = 1, Excel VBA vérifie la cellule C6, etc. Une tâche est en cours si un "1" existe dans toutes les colonnes jusqu'à la date d'aujourd'hui inclusivement. Si Excel VBA trouve un "0", il définit la couleur d'arrière-plan de la tâche sur rouge.

9. Testez le programme. Par exemple, indiquez que la tâche Z du 6 juin a été complétée. En conséquence, la tâche Z deviendra automatiquement verte.

Résultat sur le calendrier des tâches

Lisez aussi: