Tareas programadas

A continuación veremos un programa en Excel VBA que establece el color de fondo de las tareas que están programadas en 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 ha sido completada. Una tarea está en el calendario si existe un «1» en cada columna hasta la fecha de hoy inclusive. Hoy es 6-Jun. Las tareas X e Y están programadas. La tarea Z está atrasada (no hay un «1» en la celda E8).

Crear un evento de cambio de hoja de cálculo. El código agregado al Evento de Cambio de 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 la Hoja 1 (Sheet1) en el Explorador del Proyecto.

3. Elija Hoja de cálculo de la lista desplegable de la izquierda. 4. Selecciona Cambiar en la lista desplegable de la derecha.

Añade las siguientes líneas de código al Evento de Cambio de la Hoja de Trabajo:

4. Declarar dos variables de tipo Entero.

Dim i As Integer, j As Integer

5. Añade un bucle «Do While».

Do While Cells(6 + i, 1).Value <> «» i = i + 1 Bucle

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

Añade las siguientes líneas de código (en 6, 7 y 8) al bucle «Do While».

6. Inicialice la variable j con el valor 0.

j = 0

7. Poner el color de fondo de una tarea en verde asumiendo que una tarea está en el calendario (esto no es necesariamente cierto, por supuesto).

Células(6 + i, 1).Interior.ColorIndex = 4

8. Añade otro bucle «Do While».

Do While Cells(4, 2 + j).Value <= Date Si Células(6 + i, 2 + j).Valor = 0 Entonces Células(6 + i, 1).Interior.ÍndiceColor = 3 j = j + 1 Bucle

Nota: la función de la 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á en horario si existe un «1» en cada columna hasta la fecha de hoy inclusive. Si Excel VBA encuentra un «0», establece el color de fondo de la tarea en rojo.

9. Pruebe el programa. Por ejemplo, indique que la tarea Z del 6 de junio ha sido completada. Como resultado, la tarea Z se volverá automáticamente verde.

Deja un comentario