lunes, 21 de junio de 2021

43-44 - Tu primer programa: Planilla de turnos

En videos 43 y 44 del canal vimos cómo armar una Planilla de Turnos de cualquier índole (turnos médicos, alquiler de oficinas, salones, alquiler de vajilla, etc).

En el primero de los videos vimos que la hoja de turnos presenta 60 tablas iguales (5 semanas a derecha y 12 meses hacia abajo). La tarea es completar la de la primera semana de Enero y luego copiarla hacia derecha y hacia abajo para completar el año.


Utilizamos nombres de rango para celdas que guardan la hora inicial y el intervalo de tiempo entre turnos. Esto nos permite modificar estos valores al cambiar de año sin necesidad de modificar la hoja de Turnos. 

También utilizamos celdas auxiliares para obtener los primeros días de cada mes según el año elegido, y qué día de semana inicia cada mes.

Las celdas auxiliares se guardan en una hoja aparte, en este caso llamada 'Logs' con esta ubicación de datos:


En el segundo video vimos las fórmulas utilizadas en fila 4 para mostrar cada día de la semana del mes elegido, el formato condicional para marcar con otro color los días no disponibles y las macros para cada grupo de botones. 

Como en este modelo de planilla los datos de los turnos se guardan en la misma hoja (no se pasan a una hoja base o listado) contamos con botones programados que nos permiten mostrar la semana del mes elegido y ocultar el resto de las columnas. 

Estos botones están agrupados por tipo (meses o semanas) y tienen seleccionada la propiedad: No mover ni cambiar tamaño con celdas. Esto permite que se mantengan estáticos al seleccionar otro mes y/u otra semana.

Nombres de rango y fórmulas en hoja auxiliar:

H1 = hora inicial con nombre de rango Turno1    
H2 = intervalo entre turnos con nombre de rango Turno2

Q2 = año vigente
R1:R12:  del 1 al 12 (número de mes)
S1 = fórmula para obtener el primer día del mes
         =FECHA($Q$2;R1;1)
T1 = fórmula para obtener el día de semana del primer día del mes
         =DIASEM(S1;2)

Fórmulas en hoja Turnos:

C5 (lunes):  

=SI(Logs!$T$1=7;Logs!$S$1+C$3;SI(Logs!$T$1=C$3;Logs!$S$1;""))

F5 (martes) que se arrastrará hasta R5 (sábado):

=SI(Logs!$T$1 = 7;Logs!$S$1+F$3;SI(Logs!$T$1=F$3;Logs!$S$1;SI(Logs!$T$1<F$3;C5+1;"")))

Al replicar las tablas hacia abajo habrá que reemplazar la referencia con $1 a la de los meses correspondientes, así para Febrero sería con el número 2:

C34 (lunes):  

=SI(Logs!$T$2=7;Logs!$S$2+C$3;SI(Logs!$T$2=C$3;Logs!$S$2;""))

F34 (martes) que se arrastrará hasta R34 (sábado):

=SI(Logs!$T$2 = 7;Logs!$S$2+F$3;SI(Logs!$T$2=F$3;Logs!$S$2;SI(Logs!$T$2<F$3;C34+1;"")))


Videos con el desarrollo completo: 

Video 43: https://youtu.be/rdWpnZeefxA

Video 44https://youtu.be/sQwk6PLVrQ0


No hay comentarios.:

Publicar un comentario