Ci-dessous, nous examinerons un programme dans Excel VBA qui définit la couleur d’arrière-plan des tâches qui sont dans les délais prévus au vert, et définit la couleur d’arrière-plan des tâches qui sont en retard au rouge.

Situation:

Sur Sheet1 nous avons trois tâches (X, Y, Z). Un « 1 » indique qu’une tâche est terminée. Une tâche est dans les délais prévus si un exist « 1 » dans chaque colonne jusqu’à et y compris la date d’aujourd’hui. Aujourd’hui, il est 6 juin Tâches X et Y sont dans les délais prévus. Tâche Z est en retard (pas « 1 » dans la cellule E8).

Tasks on Schedule in Excel VBA

Créer une feuille de calcul Modifier l’événement. Code ajouté à la feuille de changement d’événement sera exécuté par Excel VBA lorsque vous modifiez une cellule sur une feuille de calcul.

  1. Ouvrez le Visual Basic Editor.

  2. Double-cliquez sur Sheet1 (Sheet1) dans le projet Explorer.

  3. Choisissez la feuille de travail dans la liste déroulante de gauche. Choisissez le changement de la droite liste déroulante.

Worksheet Change Event in Excel VBA

Ajoutez les lignes de code suivantes à la feuille de travail Modifier l’événement:

  1. Déclarer deux variables de type entier.

Dim i As Integer, j As Integer
  1. Ajouter 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 quitte la boucle Do While lorsque les cellules (6 + i, 1) .Value est vide (tâches non plus à vérifier).

Ajoutez les lignes de code ci-dessous (à 6, 7 et 8) à la boucle Do While.

  1. initialiser la variable j avec la valeur 0.

j = 0
  1. Définissez la couleur d’arrière-plan d’une tâche au vert en supposant qu’une tâche est dans les délais prévus (ce n’est pas nécessairement vrai, bien sûr).

Cells(6 + i, 1).Interior.ColorIndex = 4
  1. Ajouter 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

Note: la fonction Date renvoie la date d’aujourd’hui.

Explication: pour i = 0, j = 0, les contrôles Excel VBA cellule B6. Pour i = 0, j = 1, Excel VBA vérifie la cellule C6, etc. Une tâche est dans les délais prévus si existe « 1 » 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 au rouge.

  1. Tester le programme. Par exemple, indiquer que la tâche Z le 6 juin est terminée. En conséquence, la tâche Z se met automatiquement en vert.

Tasks on Schedule Result