



Cuando asignamos horarios, turnos y tareas en nuestro trabajo, se convierte en una labor tediosa al necesitar que el personal no se repita, para ello te mostramos: Asigna turnos / tareas a trabajadores para el mes en Excel.

- ENCABEZADOS
Ir a: Celda C3
Escribir: Fecha inicial.
Ir a: Celda E3
Escribir: Número de Semanas.
Ir a: Celda B7
Escribir: 1 Semana.
Ir a: Celda C7
Escribir: Tarea 1 o el nombre de la tarea deseada.
Ir a: Celda D7
Escribir: Tarea 2 o el nombre de la tarea deseada.
Ir a: Celda E7
Escribir: Tarea 3 o el nombre de la tarea deseada.
Ir a: Celda F7
Escribir: Tarea 4 o el nombre de la tarea deseada.
Ir a: Celda G7
Escribir: Tarea 5 o el nombre de la tarea deseada.
Ir a: Celda H7
Escribir: Tarea 6 o el nombre de la tarea deseada.

- RELACIÓN DE TRABAJADORES
Escribimos la relación de turnos manualmente para la primera semana.
Ir al rango: C8:H14
Escribir el nombre de los trabajadores. Para toda la semana de la fecha inicial.

- DÍA DE LA SEMANA
Ir a: Celda B8
Escribir =A8.
Copiar la celda y pegar en el rango B9:B14.
FORMATO DE CELDA. Seleccionar la columna B. Rango donde aplicar el formato personalizado.
Ir a: Cinta de opciones
Pestaña: Inicio
Grupo: Número
Formato de número
. Mostrará ventana de formato de celdas.
Clic sobre la pestaña
Número. Tipo de formato deseado.
Clic sobre Categoría: Personalizada.
Ir a: Tipo
Escribir: dddd.
Pulsar el botón Aceptar. Cierra la ventana y aplica el formato a la columna, mostrando la fecha como el día en texto.

- CREAR MACROS
Con Excel abierto.
Pulsar la tecla Alt y mantener pulsada
Pulsar la tecla F11. Mostrará el editor de Visual Basic.
Ir a: Barra de Menú
Insertar
Módulo. Mostrará la ventana del módulo donde escribimos la función.
Escribir el código para la primera macro:
Public Sub Tareas()
Dim x As Integer
Dim y As Integer
Dim Semana As Integer
Dim Fila_Fin As Long
Dim Fila_Actual As Long
Dim Fila_Anterior As Long
Dim Cantidad As Integer
Dim Fecha_Inicio As Date
Dim Fecha_Fin As Date
On Error Resume NextIf Range("C4") = Empty And Range("E4") = Empty Then
MsgBox "La FECHA INICIAL (C4) y el NÚMERO DE SEMANAS (E4), no pueden estar vacías"
Exit Sub
End If
Fecha_Inicio = Format(Range("C4").Value, "dd/mm/yyyy")
Cells(8, 1).Value = Fecha_InicioFor x = 9 To 14
Cells(x, 1).Value = Fecha_Inicio + x - 8
Next x
Fecha_Fin = Fecha_Inicio + 7
Cantidad = Range("E4")For Semana = 2 To Cantidad
Fila_Fin = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
Fila_Actual = Fila_Fin + 1
Fila_Anterior = Fila_Actual - 8
Cells(Fila_Actual, 2).Value = Semana & " Semana"
Cells(Fila_Actual, 2).Font.Bold = True
Cells(Fila_Actual, 2).Borders.LineStyle = xlContinuousFor x = 3 To 8
Cells(Fila_Actual, x).Value = Cells(Fila_Anterior, x).Value
Cells(Fila_Actual, x).Font.Bold = True
Cells(Fila_Actual, x).Borders.LineStyle = xlContinuousNext x
For y = 1 To 7
Fila_Fin = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
Fila_Actual = Fila_Fin + 1
Fila_Anterior = Fila_Actual - 8
Cells(Fila_Actual, 1).Value = Fecha_Fin
Fecha_Fin = Fecha_Fin + 1
Cells(Fila_Actual, 2).Value = Cells(Fila_Anterior, 2).ValueFor x = 3 To 7
Cells(Fila_Actual, x).Value = Cells(Fila_Anterior, x + 1).Value
Next x
Cells(Fila_Actual, 8).Value = Cells(Fila_Anterior, 3).Value
Next y
Next SemanaEnd Sub
La macro asigna las tareas nuevas a los trabajadores.
Escribir a continuación, el código para la segunda macro:
Sub Borra_Tareas()
Dim x As Integer
Dim y As IntegerRange("C4").Value = ""
Range("E4").Value = ""Fila_Fin = Sheets(1).Range("B" & Rows.Count).End(xlUp).Row
For x = 15 To Fila_Fin
For y = 1 To 9Cells(x, y).Value = ""
Cells(x, y).Borders.LineStyle = xlNoneNext y
Next xFor x = 8 To 14
Cells(x, 1).Value = " "
Cells(x, 1).Borders.LineStyle = xlNoneNext x
End Sub
La macro borra los datos insertados, permitiendo asignar unas tareas nuevas.
SALIR DEL EDITOR DE VBA. Ir a: Barra de menús
Archivo
Cerrar y volver a Microsoft Excel.
Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.
- DATOS ENTRADA
Ir a: Celda C4
Escribir: 01/01/2017. O la fecha inicial en formato día/mes/año.
Ir a: Celda E4
Escribir: El número de semanas deseado. Para obtener las tareas de los trabajadores.

- EJECUTAR MACRO
Ir a: Cinta de Opciones
Pestaña: Programador o Desarrollador (según la versión Excel)
Grupo: Código
Macros
; O también, Atajo de teclado Alt + F8. Mostrará cuadro de diálogo de macro.
Ir a: Nombre de la macro
Clic sobre la macro creada: Tareas.
Pulsar el botón Ejecutar. Reproducirá la macro.
Verificar como inserta los trabajadores para las tareas, según el día de la semana.
Aplicar formato a la fuente, celdas, bordes, etc.

Buenas tardes, hago todo tal cual indican, pero me sale error de sintaxis, me indica que la celda donde se indica la fecha inicial no debe estar vacia.
Por favor ayuda!!!!
Hola Gaston,
Revisa que la fecha inicial se encuentra en la celda C4 o la deseada, y que el código tengas la referencia a esa celda.
Saludos.
Muchas gracias por cuidar este contenido y compartirlo con todos, gracias
excelente.
Gracias
BUENOS DIAS
A MI NO ME FUNCIONA NO TENDRIAS UN EJEMPLO MAS CLARO
Hola José,
El post es avanzado al incluir macros. No disponemos de otro ejemplo, prepararemos otro en el futuro.
Saludos.
PORFA SI QUIERO PARA MAS PERSONAL PARA 18 QUE HAGO
Hola Robert,
El post es un ejemplo para ver las posibilidades de Excel, puedes modificar el ejemplo a las filas y columnas deseadas.
Saludos.
Excelente, funcionando perfectamente, gracias por compartir tus conocimientos
Excelente ejemplo me ha servido muchisimo, es muy practico y funcional.