Hacer tabla de horas y saber a que hora debo empezar para poder hacer las horas estipuladas

Me gustaría hacer, si es posible, una tabla en la que yo pueda poner el inicio de trabajo por la mañana, paro por desayuno, inicio, paro por comida y que la tabla me indique a que hora debo empezar de nuevo para que yo haga 8,30horas, saliendo a las 16,30 h y entre desayuno y comida debo hacer una hora. La entrada es a las 7h.

Respuesta
1

Supongo así tu tabla

Aquí tienes el código:

Sub CrearTablaHoras()
    Dim ws As Worksheet
    Dim horaInicio As Date
    Dim horaDesayuno As Date
    Dim horaAlmuerzo As Date
    Dim horaFinal As Date
    Dim tiempoTotal As Date
    Dim tiempoRestante As Date
    ' Establecer la hoja de trabajo activa
    Set ws = ThisWorkbook.ActiveSheet
    ' Leer los valores de inicio y duración de las actividades de la hoja de cálculo
    horaInicio = ws.Range("B2").Value
    horaDesayuno = ws.Range("B3").Value
    horaAlmuerzo = ws.Range("B5").Value
    horaFinal = ws.Range("B6").Value
    tiempoTotal = TimeValue("08:30:00")
    ' Calcular el tiempo restante
    tiempoRestante = tiempoTotal - (horaDesayuno - horaInicio) - (horaAlmuerzo - horaDesayuno)
    ' Imprimir la tabla de horas en la hoja de cálculo
    ws.Range("A1:C1").Value = Array("Actividad", "Hora de inicio", "Hora de finalización")
    ws.Range("A2:C2").Value = Array("Entrada", Format(horaInicio, "hh:mm"), "-")
    ws.Range("A3:C3").Value = Array("Desayuno", Format(horaDesayuno, "hh:mm"), Format(horaDesayuno + TimeValue("01:00:00"), "hh:mm"))
    ws.Range("A4:C4").Value = Array("Reinicio", Format(horaDesayuno + TimeValue("01:00:00"), "hh:mm"), "-")
    ws.Range("A5:C5").Value = Array("Almuerzo", Format(horaAlmuerzo, "hh:mm"), Format(horaAlmuerzo + TimeValue("01:00:00"), "hh:mm"))
    ws.Range("A6:C6").Value = Array("Final del día", Format(horaFinal, "hh:mm"), "-")
    ' Calcular la hora de inicio para completar el tiempo restante
    horaInicio = horaFinal - tiempoRestante
    ' Imprimir la hora de inicio necesaria en la hoja de cálculo
    ws.Range("A8").Value = "La hora de inicio necesaria es:"
    ws.Range("B8").Value = Format(horaInicio, "hh:mm")
End Sub

Buenos días, ante todo gracias por tu trabajo, pero no se como meter toda esa información

Saludos

Para utilizar este código, sigue estos pasos:

  1. Abre Excel y presiona Alt + F11 para abrir el Editor de Visual Basic (VBE).
  2. Inserta un nuevo módulo haciendo clic derecho en el panel del proyecto y seleccionando "Insertar" -> "Módulo".
  3. Copia y pega el código en el nuevo módulo.
  4. Asegúrate de que tu hoja de trabajo activa contenga los datos necesarios en las celdas correspondientes (B2, B3, B5 y B6).
  5. Ejecuta la macro haciendo clic en el botón "Ejecutar" o presionando F5.

La macro creará una tabla en la hoja de cálculo activa con las actividades y las horas de inicio y finalización correspondientes. Además, calculará la hora de inicio necesaria para completar el tiempo restante y la imprimirá en la celda B8.

1 respuesta más de otro experto

Respuesta
2

Desde mi Blog podrás descargar un planilla completa para Turnos.

https://www.blogger.com/blog/post/edit/7837707101703779819/4069537799238881333 

Está diseñada para todas las semanas de todos los meses de un año. Si bien parece más amplia de lo que buscas, te servirá para obtener el armado de las horas de turnos.

El tema lo desarrollé en los videos Nº 43 y 44 de mi canal.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas