Tareas programadas en Excel VBA - Macros fáciles de Excel

Tabla de contenido

A continuación, veremos un programa en Excel VBA que establece el color de fondo de tareas que están en el horario en verde y establece el color de fondo de las tareas atrasadas 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).

Cree un evento de cambio de hoja de trabajo. Excel VBA ejecutará el código agregado al evento de cambio de la 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.

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 como entero, j como entero

5. Agregue un bucle Do While.

Hacer while celdas (6 + i, 1) .Valor ""
yo = yo + 1
Lazo

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).

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

8. Agregue otro bucle Do While.

Hacer mientras que las celdas (4, 2 + j) .Valor <= Fecha
Si Cells (6 + i, 2 + j) .Value = 0 Entonces Cells (6 + i, 1) .Interior.ColorIndex = 3
j = j + 1
Lazo

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.

Va a ayudar al desarrollo del sitio, compartir la página con sus amigos

wave wave wave wave wave