Asigna turnos / tareas a trabajadores para el mes en Excel

Compatibilidad: Excel 365 2021 2019 2016

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.

Asigna turnos / tareas a trabajadores para el mes en Excel
  • ENCABEZADOS
  1. Ir a: Celda C3 / Escribir: Fecha inicial.

  2. Ir a: Celda E3 / Escribir: Número de Semanas.

  3. Ir a: Celda B7 / Escribir: 1 Semana.

  4. Ir a: Celda C7 / Escribir: Tarea 1 o el nombre de la tarea deseada.

  5. Ir a: Celda D7 / Escribir: Tarea 2 o el nombre de la tarea deseada.

  6. Ir a: Celda E7 / Escribir: Tarea 3 o el nombre de la tarea deseada.

  7. Ir a: Celda F7 / Escribir: Tarea 4 o el nombre de la tarea deseada.

  8. Ir a: Celda G7 / Escribir: Tarea 5 o el nombre de la tarea deseada.

  9. Ir a: Celda H7 / Escribir: Tarea 6 o el nombre de la tarea deseada.

Hoja Excel mostrando los encabezados
  • RELACIÓN DE TRABAJADORES

Escribimos la relación de turnos manualmente para la primera semana.

  1. Ir al rango: C8:H14 / Escribir el nombre de los trabajadores. Para toda la semana de la fecha inicial.

Hoja Excel mostrando la relación de trabajadores para la primera semana
  • DÍA DE LA SEMANA
  1. Ir a: Celda B8 / Escribir =A8.

  2. Copiar la celda y pegar en el rango B9:B14.

  3. FORMATO DE CELDA. Seleccionar la columna B. Rango donde aplicar el formato personalizado.

  4. Ir a: Cinta de opciones / Pestaña: Inicio / Grupo: Número / Formato de número . Mostrará ventana de formato de celdas.

  5. Clic sobre la pestaña / Número. Tipo de formato deseado.

  6. Clic sobre Categoría: Personalizada.

  7. Ir a: Tipo / Escribir: dddd.

  8. Pulsar el botón Aceptar. Cierra la ventana y aplica el formato a la columna, mostrando la fecha como el día en texto.

Ventana formato Excel: tipo dddd
  • CREAR MACROS
  1. Con Excel abierto.

  2. Pulsar la tecla Alt y mantener pulsada / Pulsar la tecla F11. Mostrará el editor de Visual Basic.

  3. Ir a: Barra de Menú / Insertar / Módulo. Mostrará la ventana del módulo donde escribimos la función.

  4. 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 Next

    If 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_Inicio

    For 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 = xlContinuous

    For 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 = xlContinuous

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

    For 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 Semana

    End Sub

    La macro asigna las tareas nuevas a los trabajadores.

  5. Escribir a continuación, el código para la segunda macro:

    Sub Borra_Tareas()
    Dim x As Integer
    Dim y As Integer

    Range("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 9

    Cells(x, y).Value = ""
    Cells(x, y).Borders.LineStyle = xlNone

    Next y
    Next x

    For x = 8 To 14

    Cells(x, 1).Value = " "
    Cells(x, 1).Borders.LineStyle = xlNone

    Next x

    End Sub

    La macro borra los datos insertados, permitiendo asignar unas tareas nuevas.

  6. SALIR DEL EDITOR DE VBA. Ir a: Barra de menús / Archivo / Cerrar y volver a Microsoft Excel.

  7. Guardar el libro con la extensión *.xlsm. Libro habilitado para macros.

  • DATOS ENTRADA
  1. Ir a: Celda C4 / Escribir: 01/01/2017. O la fecha inicial en formato día/mes/año.

  2. Ir a: Celda E4 / Escribir: El número de semanas deseado. Para obtener las tareas de los trabajadores.

Hoja de Excel mostrando fecha inicial y número de semanas
  • EJECUTAR MACRO
  1. 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.

    Ventana de ejecuatar macros
  2. Ir a: Nombre de la macro / Clic sobre la macro creada: Tareas.

  3. Pulsar el botón Ejecutar. Reproducirá la macro.

    Hoja Excel mostrando las tareas desde la fecha 01/01/2017 para 3 semanas
  4. Verificar como inserta los trabajadores para las tareas, según el día de la semana.

  5. Aplicar formato a la fuente, celdas, bordes, etc.

  

Nivel de dificultad: Experto VBA-Macros Excel Experto VBA - Macros

10 comentarios en “Asigna turnos / tareas a trabajadores para el mes en Excel

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.