A continuación vamos a ver un programa en Excel VBA que establece el color de fondo de las tareas que están en la fecha prevista a verde, y se pone el color de fondo de las tareas que son retrasados ​​a rojo.

Situación:

En Hoja1 tenemos tres tareas (X, Y, Z). Un «1» indica que una tarea se ha completado. Una tarea está a tiempo si un existir «1» en cada columna hasta e incluyendo la fecha de hoy. Hoy es 6-jun. Tareas X e Y son en horario. Z es tarea de retraso (no «1» en la celda E8).

Tasks on Schedule in Excel VBA

Crear un evento de cambio de hoja de cálculo. Código añadido al evento de cambio de hoja de trabajo será ejecutado por Excel VBA cuando se cambia una celda en una hoja de cálculo.

  1. Abra el Editor de Visual Basic.

  2. Haga doble clic en Hoja1 (Sheet1) en el Explorador de proyectos.

  3. Seleccione la hoja de trabajo de la lista desplegable izquierda. Elija el Cambio de la lista desplegable de la derecha.

Worksheet Change Event in Excel VBA

Añadir las siguientes líneas de código en el evento de cambio de hoja de cálculo:

  1. declarar dos variables de tipo entero.

Dim i As Integer, j As Integer
  1. Añadir un bucle Do While.

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

i = i + 1

Loop

Explicación: para i = 0, Excel VBA tarea comprueba X, para i = 1, la tarea Y, etc.

Excel VBA sale del bucle Do While cuando las células (6 + i, 1) .Value está vacío (no más tareas para comprobar).

Añadir las siguientes líneas de código (a las 6, 7 y 8) para el bucle Do While.

  1. inicializar la variable j con valor 0.

j = 0
  1. Establecer el color de fondo de una tarea a verde suponiendo que es una tarea en la fecha prevista (esto no es necesariamente cierto, por supuesto).

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

Nota: la función Fecha devuelve la fecha de hoy.

Explicación: para i = 0, j = 0, Excel VBA celda B6 cheques. Para i = 0, j = 1, Excel VBA celda C6 cheques, etc. Una tarea es en horario si un «1» existe en cada columna hasta e incluyendo la fecha de hoy. Si Excel VBA encuentra un «0», establece el color de fondo de la tarea a rojo.

Prueba 9. programa. Por ejemplo, indican que la tarea de Z, el 6-Jun se ha completado. Como resultado, la tarea Z se apagará automáticamente verde.

Tasks on Schedule Result