Saltar al contenido

Planificación semanal de Tareas x persona,


Recommended Posts

publicado

Hola Grupo un gusto saludarlos a todos, 

Estoy realizando planificaciones semanales , donde tengo una base con los horarios de los agentes y sus libres, y luego en base a eso realizo una planificacion semanal ,

Pero me resta resultando muy manual, mi idea es poderla automatizarla un poco, o lo mas que se pueda ya que entiendo que es dificil, 

La idea que tengo y que intente hacer de muchas formas pero por el momento no logro concretar es la siguiente: 

Si el agente ese dia tiene su horario normal y esta capactiado en la tarea ejemplo 3 tipos de Tarea (administracion, ventas, logistica ) y conincide con su hora que se autocomplete en base al dia y al dia que el agente trabaje,

Me resulta muy dificil debido a que son varios parametros, las planificaciones se manandan de forma semanal, 

Me parece super interesante podes desarrollar una idea de este tipo y mas excel, entiendo que es posible pero me resulta difícil, muy difícil,

Me podrían brindar ayuda a concretar este problema ? intente de muchas formas pero no logre realizarlo, 

Estaria encantando con la ayuda que pueden brindar,

Saludos desde Uruguay! 

 

Planificacion Dinamica x agentes Semanales .xlsx

publicado

Ya irán llegando los buenos de verdad, los que solucionan las cosas, pero mientras yo adelanto preguntas.

Entiendo que lo que pretendes es que en la hoja Tareas Semanales, se rellene automáticamente para cada trabajador, el puesto correspondiente en cada día.

Si es así, cada semana tendrás que hacer una hoja nueva para los nuevos datos, o de lo contrario, si quieres que se automatice de verdad, tendrás que poner automático las fechas de la fila 3.

También entiendo que todos pueden tener cualquier horario, si no, no tiene mucho sentido la hoja Datos Agentes, con lo cual esa hoja si que la vas a tener que organizar por "turnos rotatorios".

Y por ultimo tendrás que definir algún algoritmo para asignar a cada trabajador, el puesto capacitado según para qué día porque si no, estamos en las mismas, asignarlo de forma manual no automatiza nada.

Como ejemplo te digo, que muchas de esas cosas a veces (muchas veces) es mejor hacerlo de forma manual, porque los problemas que plantea a veces un algoritmo de algo que pretendemos son mayores que los posibles beneficios. Típico ejemplo de muchos que pretenden con X turnos rotativos de 7 días a la semana, dar a un botón y que les aparezca automáticamente todos los turnos del mes de todos los trabajadores con los descansos legales y los festivos :)

publicado
Hace 17 horas, njnsp dijo:

Ya irán llegando los buenos de verdad, los que solucionan las cosas, pero mientras yo adelanto preguntas.

Entiendo que lo que pretendes es que en la hoja Tareas Semanales, se rellene automáticamente para cada trabajador, el puesto correspondiente en cada día.

Si es así, cada semana tendrás que hacer una hoja nueva para los nuevos datos, o de lo contrario, si quieres que se automatice de verdad, tendrás que poner automático las fechas de la fila 3.

También entiendo que todos pueden tener cualquier horario, si no, no tiene mucho sentido la hoja Datos Agentes, con lo cual esa hoja si que la vas a tener que organizar por "turnos rotatorios".

Y por ultimo tendrás que definir algún algoritmo para asignar a cada trabajador, el puesto capacitado según para qué día porque si no, estamos en las mismas, asignarlo de forma manual no automatiza nada.

Como ejemplo te digo, que muchas de esas cosas a veces (muchas veces) es mejor hacerlo de forma manual, porque los problemas que plantea a veces un algoritmo de algo que pretendemos son mayores que los posibles beneficios. Típico ejemplo de muchos que pretenden con X turnos rotativos de 7 días a la semana, dar a un botón y que les aparezca automáticamente todos los turnos del mes de todos los trabajadores con los descansos legales y los festivos :)

Hola buenos días!, gracias por tu mensaje, entiendo lo que planeas del algoritmo, lo que logre hasta ahora es aislar la data lo mas posible y que lo lleve a una hoja a parte, es decir de un cronograma dé turnos(mensual) a un cronograma semanal que escojo la fecha y me brinda todos los turnos de los agentes , con sus ausencias y demas , luego para saber que trabajador esta en que tal dia , use la opción de filter, pero esta lejos de lo que quiero lograr, pero por el momento me sirve, es como mencionas tu, realizarlo puede llevar a realizar mas correcciones manuales que  lo que me va a servir, pero quedarse con las ganas de poder realizar algo en este caso no me parece una opción,  de mi parte voy a poner lo mas posible para que pueda realizar lo mas que se pueda ,

Gracias por tu mensaje , seguiré tratado de solucionar lo que menciono , Un saludo desde Uruguay! 

publicado
Hace 18 horas, njnsp dijo:

Ya irán llegando los buenos de verdad, los que solucionan las cosas, pero mientras yo adelanto preguntas.

Entiendo que lo que pretendes es que en la hoja Tareas Semanales, se rellene automáticamente para cada trabajador, el puesto correspondiente en cada día.

Si es así, cada semana tendrás que hacer una hoja nueva para los nuevos datos, o de lo contrario, si quieres que se automatice de verdad, tendrás que poner automático las fechas de la fila 3.

También entiendo que todos pueden tener cualquier horario, si no, no tiene mucho sentido la hoja Datos Agentes, con lo cual esa hoja si que la vas a tener que organizar por "turnos rotatorios".

Y por ultimo tendrás que definir algún algoritmo para asignar a cada trabajador, el puesto capacitado según para qué día porque si no, estamos en las mismas, asignarlo de forma manual no automatiza nada.

Como ejemplo te digo, que muchas de esas cosas a veces (muchas veces) es mejor hacerlo de forma manual, porque los problemas que plantea a veces un algoritmo de algo que pretendemos son mayores que los posibles beneficios. Típico ejemplo de muchos que pretenden con X turnos rotativos de 7 días a la semana, dar a un botón y que les aparezca automáticamente todos los turnos del mes de todos los trabajadores con los descansos legales y los festivos :)

Estuve viendo ejemplos con la función SOLVER, pero todavía no me salio lo esperado  

publicado

Según vayas avanzando, plantea dudas concretas y seguro que muchos podrán resolverlas.

Saludos

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 109 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      188
    • Comentarios
      98
    • Revisiones
      29

    Más información sobre "Cambios en el Control Horario"
    Última descarga
    Por pegones1

    4    1

  • Crear macros Excel

  • Mensajes

    • Hola, veo que tienes 365, así que esta forma funcionará   Almacen.xlsx
    • Buenos días  @LeandroA espero estes bien Tengo un caso idéntico al planteado en la siguiente pregunta: Sin embargo, a diferencia de quien planteo originalmente la pregunta al correr el código no obtengo ningún resultado podrían ayudarme a resolver este inconveniente y que al hacer click en el Botón Guardar (CommandButton3) del Formulario RCS (frmrcs) el archivo pdf quede configurado con orientación vertical, márgenes superior, inferior, derecho e izquierdo = 1 y en página tamaño carta. Si acaso influye uso Microsoft Excel LTSC MSO (versión 2209 Compilación16.0.1.15629.20200) de 64 bits Mucho le sabre agradecer la ayuda que me pueda dar  RCS PRUEBA - copia.xlsm
    • @JSDJSDCon gusto mi estimado Para la opción 1: Sub Surtirhastadondealcanse() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 4 Dim filaFin As Integer: filaFin = 7 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Else solicitudes(i) = 0 End If surtido(i) = "POR FALTA STOCK" Next i ' Surtir de acuerdo al inventario disponible For i = 1 To numClientes If solicitudes(i) > 0 Then If inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) ElseIf inventario > 0 Then surtido(i) = inventario totalSurtido = totalSurtido + inventario inventario = 0 Else surtido(i) = "POR FALTA STOCK" End If End If Next i ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = "POR FALTA STOCK" Then .Value = surtido(i) .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Para la opción 2:   Sub surtirenpartesiguales() Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) Dim filaInicio As Integer: filaInicio = 13 Dim filaFin As Integer: filaFin = 16 Dim colInventario As Integer: colInventario = 2 Dim colSolicitudesInicio As Integer: colSolicitudesInicio = 4 ' Columna C Dim colResultadoInicio As Integer: colResultadoInicio = 9 ' Columna I Dim colTotalSurtido As Integer: colTotalSurtido = 12 ' Columna L Dim colFinalInventario As Integer: colFinalInventario = 13 ' Columna M Dim numClientes As Integer: numClientes = 3 Dim fila As Integer, i As Integer For fila = filaInicio To filaFin Dim inventario As Double inventario = Val(ws.Cells(fila, colInventario).Value) Dim solicitudes(1 To 3) As Double Dim surtido(1 To 3) As Variant Dim totalSurtido As Double: totalSurtido = 0 Dim totalPedido As Double: totalPedido = 0 ' Leer solicitudes For i = 1 To numClientes If IsNumeric(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) Then solicitudes(i) = CDbl(ws.Cells(fila, colSolicitudesInicio + i - 1).Value) totalPedido = totalPedido + solicitudes(i) Else solicitudes(i) = 0 End If surtido(i) = 0 Next i ' Si hay suficiente inventario, surtir lo que el cliente pide If inventario >= totalPedido Then For i = 1 To numClientes If solicitudes(i) > 0 And inventario >= solicitudes(i) Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) End If Next i Else ' Reparto base igualitario Dim baseSurtido As Long baseSurtido = Int(inventario / numClientes) For i = 1 To numClientes If solicitudes(i) > 0 Then If solicitudes(i) <= baseSurtido Then surtido(i) = solicitudes(i) inventario = inventario - solicitudes(i) totalSurtido = totalSurtido + solicitudes(i) Else surtido(i) = baseSurtido inventario = inventario - baseSurtido totalSurtido = totalSurtido + baseSurtido End If End If Next i ' Repartir sobrante restante uno por uno, respetando lo pedido Do While inventario > 0 For i = 1 To numClientes If surtido(i) < solicitudes(i) Then surtido(i) = surtido(i) + 1 totalSurtido = totalSurtido + 1 inventario = inventario - 1 If inventario = 0 Then Exit For End If Next i Loop End If ' Escribir resultados en las columnas correspondientes para cada cliente For i = 1 To numClientes With ws.Cells(fila, colResultadoInicio + i - 1) If surtido(i) = 0 Then .Value = "POR FALTA STOCK" .Font.Color = vbRed Else .Value = surtido(i) .Font.Color = vbBlack End If End With Next i ' Escribir total surtido y existencia final ws.Cells(fila, colTotalSurtido).Value = totalSurtido ws.Cells(fila, colFinalInventario).Value = inventario Next fila MsgBox "Resultado surtido cargado con éxito...", vbInformation End Sub Saludos, Diego
    • Buenos dias.  Estoy trabajando en una hoja para poder llevar un control de un pequeño almacén.  Tengo un pedido con varias líneas y "lotes" y necesito sacar las ubicaciones que coincidan con la referencia y lote que pone en el pedido. El problema viene cuando tengo la misma referencia y mismo lote en ubicaciones diferentes y necesito sacar la información en columnas diferentes. No se si  me he explicado bien, pero creo que con el ejemplo adjunto se entiende mejor. Agradecería mucho si me pudieran ayudar  Libro1.xlsx
    • Exelente solución mil gracias 
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.