/ / Sarcini pe program în Excel VBA

Sarcini pe Program în Excel VBA

Mai jos ne vom uita la un program în Excel VBA care stabilește culoarea de fundal din sarcinile care sunt la termen la culoarea verde și stabilește culoarea de fundal a sarcinilor care se află în spatele programului în roșu.

Situatie:

Pe Sheet1 avem trei sarcini (X, Y, Z). Un "1" indică faptul că o activitate a fost finalizată. O sarcină este programată dacă există o "1" în fiecare coloană până la data actuală și inclusiv. Astăzi este 6-iunie. Sarcinile X și Y sunt în program. Sarcina Z este în spatele programului (nu "1" în celula E8).

Sarcini pe Program în Excel VBA

Creați un eveniment de schimbare a foii de lucru. Codul adăugat la evenimentul schimbare foaia de lucru va fi executat de Excel VBA atunci când modificați o celulă pe o foaie de lucru.

1. Deschideți Editorul Visual Basic.

2. Faceți dublu clic pe Sheet1 (Sheet1) în Project Explorer.

3. Selectați foaia de lucru din lista verticală din stânga. Alegeți Schimbare din lista derulantă din dreapta.

Schimbarea evenimentelor în Excel VBA

Adăugați următoarele linii de cod la Evenimentul de schimbare a foii de lucru:

4. Declare două variabile de tip Integer.

Dim i As Integer, j As Integer

5. Adăugați o Curățare în timp ce faceți.

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


    i = i + 1
Loop

Explicație: Pentru i = 0, Excel VBA verifică sarcina X, pentru i = 1, sarcina Y etc. Excel VBA părăsește buclele Do While când celulele (6 + i, 1) .Value este goală (nu mai aveți sarcini de verificat).

Adăugați următoarele linii de cod (la 6, 7 și 8) în secțiunea Do While While.

6. Inițializați variabila j cu valoarea 0.

j = 0

7. Setați culoarea de fundal a unei sarcini la verde presupunând că o sarcină este la termen (acest lucru nu este neapărat adevărat, desigur).

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

8. Adăugați un alt Do While 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

Notă: funcția Data returnează data de astăzi.

Explicaţie: Pentru i = 0, j = 0, Excel VBA verifică celula B6. Pentru i = 0, j = 1, Excel VBA verifică celula C6, etc. O sarcină este programată dacă există o "1" în fiecare coloană până la data actuală și inclusiv aceasta.Dacă Excel VBA găsește un "0" setează culoarea de fond a sarcinii pe roșu.

9. Testați programul. De exemplu, indicați că sarcina Z pe 6 iunie a fost finalizată. Ca rezultat, sarcina Z va deveni automat verde.

Sarcini privind rezultatul planificării

De asemenea, citiți: