Ci-dessous, nous examinerons un programme dans Excel VBA qui définit la couleur d’arrière-plan des tâches planifiées sur vert et définit la couleur d’arrière-plan des tâches en retard sur le rouge.
Situation:
Sur Feuil1, nous avons trois tâches (X, Y, Z). Un “1” indique qu’une tâche est terminée. Une tâche est planifiée si un “1” existe dans chaque colonne jusqu’à la date du jour incluse. Aujourd’hui, c’est 6 Aout . Les tâches X et Y respectent le calendrier. La tâche Z est en retard sur le calendrier (pas de “1” dans la cellule E8).
Créez un événement de modification de feuille de calcul. Le code ajouté à l’événement de modification de la feuille de calcul sera exécuté par
Excel VBA lorsque vous modifiez une cellule d’une feuille de calcul.
1. Ouvrez l’éditeur Visual Basic.
2. Double-cliquez sur Feuil1 (Feuil1) 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.
Ajoutez les lignes de code suivantes à l’événement de modification de la feuille de calcul:
4. Déclarez deux variables de type Entier.
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 le Do
Boucle while lorsque les cellules (6 + i, 1). La valeur 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 vert en supposant qu’une tâche est planifiée (ce n’est pas nécessairement vrai bien sûr).
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 planifiée si un “1” existe dans chaque colonne jusqu’à et y compris la date d’aujourd’hui. 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 Aout est terminée. En conséquence, la tâche Z deviendra automatiquement vert.