Boa noite pessoal
Preciso montar uma macro de conceito bem simples, apenas 3 colunas, já está praticamente pronta mas agarrei no finalzinho e realmente preciso da ajuda de vocês.
É o assim, o usuário coloca na célula a data/hora que uma ação irão começar, na próxima coluna coloca a qtde de horas que essa ação irá durar,e na terceira coluna é a saída no formato data/hora.
A questão é que tem q levar em consideração que o dia tem dez horas de trabalho, de 8:00 as 18:00 (ignorando almoço e finais de semana)
Sendo assim, as saídas devem ser dessa forma:
INÍCIO DURAÇÃO (Horas) TÉRMINO
1/8/16 8:00 10:00:00 1/8/16 18:00
1/8/16 8:00 11:00:00 2/8/16 9:00 --> 'Como a ação dura 11 hrs, então o loop incrementa a data inicial,se a hora passar de 18hrs, vira o dia começando a partir das 8:00, ou seja, uma tarefa iniciada em 1/8/16 8:00, e que gasta 11hrs pra fazer, vai terminar as 9hrs da manhã do dia seguinte.
Eu agarrei em duas coisas:
1) Marquei de vermelho na planilha (anexo)
2) se eu coloco qualquer minuto ela não recalcula
Segue abaixo o código da função que usei e anexo a planilha com os exemplos já ocorrendo.
Function calculahora(ByVal data_inicio As Date, ByVal horas As Date)
Dim dias As Integer
Dim x As Date
Dim data_final As Date
x = TimeSerial(10, 0, 0) 'Dia de trabalho de 10hrs
data_final = data_inicio
Do While TimeValue(horas) > TimeValue(x) 'Loop para ir "dissolvendo" as horas
dias = dias + 1
horas = horas - x
Loop
data_final = data_inicio + dias + horas
calculahora = data_final
End Function
Postado : 06/09/2016 6:05 pm