MACRO poner una condición y este me recalcule

Consulta para dante amor, me apoyastes con esta Macro, para repartir hrs en una fecha indicada, tengo complicaciones y quisiera que me apoyes, en la columna D quiero poner NOCHE y que en vez de que por día se ponga como máximo 24 hrs para la repartición desearía que comience con 12 hrs solo el primer día despues 24 hrs normal como el ejemplo en verde, y si no se pone nada que calcule normal 24 hrs por dia.

Muchas gracias por todo tu apoyo.

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
Respuesta
1

H o l a: Te anexo la macro actualizada

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")
        If LCase(Cells(i, "D")) = "noche" Then n = 12 Else n = 24
        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 > n, n, horas)
                col = col + 1
                horas = horas - n
                n = 24
            Loop
        End If
    Next
    MsgBox "fin"
End Sub

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

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas