/ / Tareas en horario en Excel VBA

Tareas en horario en Excel VBA

A continuación veremos un programa en Excel VBA que establece el color de fondo de tareas que están en horario a verde, y establece el color de fondo de las tareas que están atrasadas en rojo.

Situación:

En la Hoja 1 tenemos tres tareas (X, Y, Z). Un "1" indica que una tarea se ha completado. Una tarea está programada si existe un "1" en cada columna hasta e incluyendo la fecha de hoy. Hoy es 6-jun. Las tareas X e Y están programadas. La tarea Z está retrasada (no hay "1" en la celda E8).

Tareas en horario en Excel VBA

Crear un evento de cambio de hoja de trabajo. El código agregado al evento de cambio de la hoja de trabajo será ejecutado por Excel VBA cuando cambie una celda en una hoja de trabajo.

1. Abra el Editor de Visual Basic.

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

3. Elija la hoja de trabajo de la lista desplegable de la izquierda. Elija Cambiar en la lista desplegable de la derecha.

Evento de cambio de hoja de cálculo en Excel VBA

Agregue las siguientes líneas de código al evento de cambio de hoja de trabajo:

4. Declarar dos variables de tipo Integer.

Dim i As Integer, j As Integer

5. Agrega un Do While Loop.

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


    i = i + 1
Loop

Explicación: Para i = 0, Excel VBA comprueba la tarea X, para i = 1, tarea Y, etc. Excel VBA deja el bucle Do While cuando las celdas (6 + i, 1) .Value es vacío (no hay más tareas para comprobar).

Agregue las siguientes líneas de código (en 6, 7 y 8) al Do While Loop.

6. Inicialice la variable j con el valor 0.

j = 0

7. Establezca el color de fondo de una tarea en verde, suponiendo que una tarea está programada (esto no es necesariamente cierto, por supuesto).

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

8. Agrega otro 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 comprueba la celda B6. Para i = 0, j = 1, Excel VBA verifica la celda C6, etc. Una tarea está programada si existe un "1" en cada columna hasta la fecha de hoy, incluida la fecha de hoy. Si Excel VBA encuentra un "0", establece el color de fondo de la tarea en rojo.

9. Probar el programa. Por ejemplo, indique que la tarea Z en 6-jun se ha completado. Como resultado, la tarea Z se volverá verde automáticamente.

Tareas en el horario de resultados

Lea también: