/ / Taken op schema in Excel VBA

Taken op schema in Excel VBA

Hieronder zullen we een programma bekijken in Excel VBA waarmee de achtergrondkleur wordt ingesteld taken die op schema liggen naar groen en stelt de achtergrondkleur in van taken die achterlopen op schema naar rood.

Situatie:

Op Sheet1 hebben we drie taken (X, Y, Z). Een "1" geeft aan dat een taak is voltooid. Een taak ligt op schema als er een "1" bestaat in elke kolom tot en met de datum van vandaag. Vandaag is het 6 jun. Taken X en Y liggen op schema. Taak Z loopt achter op schema (geen "1" in cel E8).

Taken op schema in Excel VBA

Maak een werkblad wijzigingsgebeurtenis. Code die wordt toegevoegd aan het werkblad Wijzigingsgebeurtenis wordt uitgevoerd door Excel VBA wanneer u een cel in een werkblad wijzigt.

1. Open de Visual Basic-editor.

2. Dubbelklik op Blad1 (Blad1) in de Projectverkenner.

3. Kies Worksheet in de vervolgkeuzelijst links. Kies Wijzigen in de rechter vervolgkeuzelijst.

Werkblad Wijzigingsgebeurtenis in Excel VBA

Voeg de volgende coderegels toe aan het werkblad Wijzigingsgebeurtenis:

4. Declareer twee variabelen van het type Integer.

Dim i As Integer, j As Integer

5. Voeg een Do While Loop toe.

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


    i = i + 1
Loop

Explanation: Voor i = 0, Excel VBA controleert taak X, voor i = 1, taak Y, etc. Excel VBA verlaat de Do While-lus wanneer cellen (6 + i, 1) .Waarde is leeg (geen taken meer te controleren).

Voeg de volgende coderegels toe (op 6, 7 en 8) aan Do While Loop.

6. Initialiseer de variabele j met waarde 0.

j = 0

7. Stel de achtergrondkleur van een taak in op groen, ervan uitgaande dat een taak op schema ligt (dit hoeft natuurlijk niet altijd zo te zijn).

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

8. Voeg nog een Do While Loop toe.

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

Opmerking: de functie Datum geeft de datum van vandaag terug.

Uitleg: Voor i = 0, j = 0, controleert Excel VBA cel B6. Voor i = 0, j = 1, Excel VBA controleert cel C6, enz. Een taak ligt op schema als een "1" bestaat in elke kolom tot en met de datum van vandaag. Als Excel VBA een "0" vindt, stelt de achtergrondkleur van de taak in op rood.

9. Test het programma. Geef bijvoorbeeld aan dat taak Z op 6-jun is voltooid. Als gevolg hiervan wordt taak Z automatisch groen.

Taken op Schema Resultaat

Lees ook: