MACRO ubicar una fecha y poner valores de hrs a partir de esta fecha

Tengo una fecha y un valor de Hrs, estos datos yo los ingreso, primero con la fecha me ubica en una fila y a partir de ahi me ingresa las horas dias por dia (24 hrs/dia) ejem 1: si tengo 50 hrs el 1 enero, esto se distribuira de la siguiente manera: 1 enero = 24 hrs, 2 enero = 24 hrs y 3 enero 2 hrs. Ejem 2: si tengo 112 hrs el 1 febrero, esto será asi: 1 feb = 24 hrs, 2 feb = 24 hrs, 3 feb = 24 hrs, 4 feb = 24 hrs y 5 feb = 4 hrs. Esto se tiene que dar en un rango de 1 a 600.

1 respuesta

Respuesta
1

Puedes poner la información:

  • En cuál celda vas a poner la fecha a buscar
  • En cuál celda vas a poner el valor de Hors
  • En cuál columna están las fechas
  • A partir de cuál columna quieres la división de horas

Si puedes poner una imagen sería más claro.

Columna B Fecha y C hrs: 1ro busco la fecha de la columna B en la toda la fila 2, despues de ubicarla pongo la cantidad de horas (x dia solo se pone 24 hrs maximo): Imagen 2 se mira como se hace manualmente.

Se tiene que repartir así como en esta imagen: máximo 24 horas por día, el rango de Horas es de 1 a 600 horas para repartir a partir de la fecha indicada

Solo algo adicional si se puede es: que en la columna DE si yo pongo Noche, el primer día se ponga 12 en vez de 24 EJM: 50 horas 1 enero : 1 enero=12 horas, 2 enero = 24 horas, 3 enero= 14 horas. Solo si se pudiera, estoy intentando semanas pero no puedo.. Gracias por tu apoyo.

La fila 2 donde busco la fecha es de todo un año 

Te anexo la macro

Sub Macro5()
'------
'   Por.Dante Amor
'------
    Range(Cells(3, "E"), Cells(Rows.Count, Columns.Count)).ClearContents
    For i = 3 To Range("B" & Rows.Count).End(xlUp).Row
        fecha = Cells(i, "B")
        horas = Cells(i, "C")
        Set b = Rows(2).Find(fecha, lookat:=xlWhole)
        If Not b Is Nothing Then
            col = b.Column
            Do While horas > 0
                Cells(i, col) = IIf(horas > 24, 24, horas)
                col = col + 1
                horas = horas - 24
            Loop
        End If
    Next
    MsgBox "fin"
End Sub

'S aludos. Dante Amor. Recuerda valorar la respuesta. G racias

¡Gracias!,

Solo una consulta más si en la columna DE pongo la palabra noche quiero que funcione como condición, y en vez de que el primer día sea 24, se ponga 12 y lo demás normal. Ejemplo si es 50 horas, que sea 12 24 14. Cómo podría hacer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas