/ / Uppgifter på schema i Excel VBA

Uppgifter på schema i Excel VBA

Nedan ser vi på ett program i Excel VBA som sätter bakgrundsfärgen på uppgifter som är i tidtabell till grön och ställer bakgrundsfärgen på uppgifter som ligger bakom schemat till rött.

Situation:

På Sheet1 har vi tre uppgifter (X, Y, Z). En "1" indikerar att en uppgift har slutförts. En uppgift är i schema om en "1" existerar i varje kolumn till och med dagens datum. Idag är det 6-juni. Uppgifterna X och Y är på schema. Uppgift Z ligger bakom schemat (ingen "1" i cell E8).

Uppgifter på schema i Excel VBA

Skapa ett arbetsbladbyteshändelse. Kod som läggs till i arbetsbladets ändringshändelse kommer att köras av Excel VBA när du byter en cell i ett kalkylblad.

1. Öppna Visual Basic Editor.

2. Dubbelklicka på Sheet1 (Sheet1) i Project Explorer.

3. Välj Arbetsblad från den vänstra rullgardinsmenyn. Välj Ändra från den högra rullgardinsmenyn.

Arbetsblad Ändra händelse i Excel VBA

Lägg till följande kodlinjer till arbetsbladets ändringshändelse:

4. Förklara två variabler av typen Integer.

Dim i As Integer, j As Integer

5. Lägg till en Gör medan Loop.

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


    i = i + 1
Loop

Förklaring: För i = 0, kontrollerar Excel VBA uppgift X, för i = 1, uppgift Y, etc. Excel VBA lämnar Do While loop när celler (6 + i, 1) .Value är tomt (inga fler uppgifter att kontrollera).

Lägg till följande kodlinjer (vid 6, 7 och 8) till Do While Loop.

6. Initiera variabeln j med värdet 0.

j = 0

7. Ställ bakgrundsfärgen på en uppgift till grön förutsatt att en uppgift är i schema (detta är inte nödvändigtvis självklart).

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

8. Lägg till en annan göra medan 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

Obs! Datum-funktionen returnerar dagens datum.

Förklaring: För i = 0, j = 0, kontrollerar Excel VBA cell B6. För i = 0, j = 1, kontrollerar Excel VBA cell C6 etc. En uppgift är i schema om en "1" existerar i varje kolumn till och med dagens datum. Om Excel VBA finner en "0" Anger bakgrundsfärgen på uppgiften till röd.

9. Testa programmet. Anger till exempel att uppgiften Z den 6 juni har slutförts. Som ett resultat blir uppgift Z automatiskt grönt.

Uppgifter på schemaläggningsresultat

Läs också: