Cronograma de Barras (Diagrama de Gantt)


Cuando se quiere compartir información relacionada al cronograma, no siempre se tiene disponible el MSProject o Primavera Project Planner, al menos para el diagrama de barras podemos salir airosos usando solo Excel.

Quienes han tenido la necesidad de preparar cronogramas en Excel, es probable que han revisado en la red soluciones muy ingeniosas. Se identifican 2 tipos de esas soluciones en Excel:
  • las que crean el diagrama de barras mediante gráfico
  • las que crean el diagrama pintando celdas
Cuál escoger puede ser una cuestión de gustos. Personalmente hace unos años tuve que "inventar" el método de pintado de celdas. Las hojas de programación tienen la siguiente presentación:



El proceso de desarrollo se hace teniendo el listado de actividades, pintar las celdas manualmente de acuerdo a la escala de tiempo definida en algunas de las filas de la parte superior. Esta debe ser la forma en que la mayoría ha resuelto el problema de una forma práctica

Pero cuando hay que modificar fechas de inicio, duraciones o modificar la lista de actividades, empiezan los primeros problemas. Tratando de ser más práctico, el siguiente paso en el camino es lograr algún grado de automatización en nuestra hoja de cronograma, y la mejor manera de hacer el pintado de celdas es mediante formato condicional.


¿Cómo?
La presentación de un cronograma similar al de la figura mostrada arriba, se logra teniendo un listado de actividades ordenado en una columna, en la columna siguiente se pone la duración de cada actividad, en la siguiente columna; la fecha de inicio de cada actividad y en la otra; la fecha de finalización de la actividad. Es de esperar que el valor de la fecha de finalización de cada actividad se obtenga así FF= FI + Duración - 1.

En la fila superior se debe escribir la escala de tiempo o la asignación de la duración de cada columna, el ancho de todas las columnas que contienen la escala de tiempo debe ser constante. Sobre la fila que define la escala de tiempo, debe crearse dos filas de información en las cuales se tenga la fecha de inicio del periodo y la fecha de fin de cada columna. Si se ha establecido que cada columna equivalga a una unidad de tiempo ( 1 día, 1 semana, 1 mes) las fechas de inicio y fin debe ser iguales. La información de estas 2 filas puede hacerse invisible para mejorar la presentación.

La región de celdas que debe mostrar las barras es la que tiene, en todas sus celdas, establecido un formato condicional. Este formato condicional es dependiente de la fórmula:

                    =Y(L$5>=$J9,L$6<=$K9)     -------------- (formula aplicada a la celda L9)

Solo si el valor de esta formula resulta verdadero la celda se colorea. ¿Cómo se interpreta?

- Se compara el tiempo de la columna L si está dentro del periodo que marca la fila 9 con las fechas de inicio y fin de la actividad.


       En la fila 5 esta la fecha de inicio que cubre cada columna
       En la fila 6 esta la fecha de fin que cubre cada columna
       en la columna J está la fecha de inicio de la actividad y
       en la columna K está la fecha de fin de la actividad.

Con este esquema preparado resulta super sencillo cambiar fechas, duraciones, etc, pues el coloreado de celdas es totalmente automático.

Cronograma mediante gráfico

Hacer el cronograma mediante un gráfico de barras apiladas es un método muy bueno además de ingenioso. Si optan por este método solo es cuestión de seguir el paso a paso que está bien explicado en otras páginas de la red.

Mas allá del Excel
Una mejora en la presentación del cronograma se puede lograr usando el VBA incorporado en el Excel. Con el uso de formas predefinidas no es necesario el coloreado de celdas. Un aspecto que puede tener el cronograma sería como lo siguiente:


Como se puede ver, las barras del cronograma son flotantes sobre las celdas, el coloreado es a voluntad del programador, o se puede programar para que el usuario escoja el color y/o aspecto que desee.

Si se desea se puede lograr mejores niveles de presentación y funcionalidad, como se puede ver a continuación la presentación puede llegar a ser similar a la del MsProject.


y este otro ejemplo muestra algunos detalles más. Cuanta mas automatización se desee tener en nuestro aplicativo más código debemos redactar. En el caso que desarrollé el dibujo de barras y el cálculo de fechas se produce aplicando un click a una opción en la cinta de opciones, es decir no es automático como en el MSProject, la verdad que no es un gran problema, alguna vez logré automatizarlo pero se complicaba la ejecución en los casos especiales. Si ya haz desarrollado aplicaciones debes estar al tanto que se escribe más código para los casos particulares que para el caso general.


El cuadro de calendario que emerge para seleccionar fechas ha sido elaborado en base al programa que presenta Andrés Rojas Moncada - Excel Hecho Fácil (www.youtube.com/jarmoncada01)