Di seguito vedremo un programma in Excel VBA che imposta il colore di sfondo di compiti che sono in programma per verde, e imposta il colore di compiti che sono in ritardo a sfondo rosso.

Situazione:

Sheet1 abbiamo tre compiti (X, Y, Z). Un “1” indica che un compito è stato completato. Un compito è in programma se un esistere “1” in ogni colonna fino al data odierna. Oggi è 6-giugno Compiti X e Y sono in programma. Compito Z è in ritardo (senza “1” nella cella E8).

Tasks on Schedule in Excel VBA

Creare un evento di modifica del foglio di lavoro. Codice aggiunto all’evento Change foglio di lavoro sarà eseguito da Excel VBA quando si modifica una cella di un foglio di lavoro.

  1. Aprire il Visual Basic Editor.

  2. Fare doppio clic su Sheet1 (Foglio1) in Esplora progetti.

  3. Scegliere foglio di lavoro dall’elenco a discesa sinistra. Seleziona Cambia dall’elenco a discesa a destra.

Worksheet Change Event in Excel VBA

Aggiungere le seguenti righe di codice per l’evento Change Foglio di lavoro:

  1. Dichiarare due variabili di tipo Integer.

Dim i As Integer, j As Integer
  1. Aggiungere un ciclo Do While.

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

i = i + 1

Loop

Spiegazione: per i = 0, Excel VBA controlli compito X, per i = 1, compito Y, ecc

Excel VBA lascia il ciclo Do While quando le cellule (6 + I, 1) .Value è vuoto (non più compiti da controllare).

Aggiungere le seguenti righe di codice (a 6, 7 e 8) al Do While Loop.

  1. inizializzare la variabile j con un valore 0.

j = 0
  1. Impostate il colore di un compito sfondo al verde supponendo che un compito è in programma (questo non è necessariamente vero, naturalmente).

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

Nota: la funzione Date restituisce la data odierna.

Spiegazione: per i = 0, j = 0, Excel VBA cella B6 controlli. Per i = 0, j = 1, Excel VBA cella C6 controlli, ecc Un compito è in programma se un “1” esiste in ogni colonna fino al data odierna. Se Excel VBA trova un “0”, si imposta il colore il compito di sfondo rosso.

  1. Verificare il programma. Per esempio, indicano che compito Z il 6-Jun è stato completato. Di conseguenza, il compito Z si accende automaticamente verde.

Tasks on Schedule Result