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 retrasadas en rojo.

Situación:

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

Tareas programadas en Excel VBA

Cree un evento de cambio de hoja de trabajo. Excel VBA ejecutará el código agregado al evento de cambio de hoja de trabajo 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 Hoja de trabajo en la lista desplegable de la izquierda. Elija Cambiar en la lista desplegable de la derecha.

Evento de cambio de hoja de trabajo en Excel VBA

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

4. Declare dos variables de tipo Integer.

Dim i As Integer, j As Integer

5. Agregue un bucle Do While .

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


    i = i + 1
Loop

Explicación: Para i = 0, Excel VBA verifica la tarea X, para i = 1, la tarea Y, etc. Excel VBA deja el ciclo Do While cuando Cells (6 + i, 1). El valor está vacío (no hay más tareas para verificar) .

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

6. Inicialice la variable j con valor 0.

j = 0

7. Establezca el color de fondo de una tarea en verde, asumiendo que la tarea está dentro del programa (esto no es necesariamente cierto, por supuesto).

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

8. Agregue otro bucle 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 función Fecha devuelve la fecha de hoy.

Explicación: Para i = 0, j = 0, Excel VBA verifica 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 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 se completó la tarea Z el 6 de junio. Como resultado, la tarea Z se volverá verde automáticamente.

Resultado de tareas programadas

7/8 Completado! Obtenga más información sobre fechas y horarios>
Siguiente capítulo: Eventos