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
Caro colega, acredito que o erro está acontecendo na variável horas, pois se você inserir um valor menor que 24 ele interpretará como horas e fara o calculo correto, porem se informar um valor igual ou maior que 24 o Excel entenderá como data e dentro da sua rotina o resultado será incorreto. tentei aqui acertar mas não consegui. Talvez algum colega do fórum possa ajudá-lo melhor.
Lucélio Ferreira dos Santos
Eng. Eletricista
CREA: DF-7165/TD
luceliosantos.projeto@gmail.com
Isso é mais fácil fazer com fórmulas do q com macro.
Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.
Obrigado pessoal
Isso, ocorre quando passa de 24 horas, o porém é que uma tarefa pode demorar mais de 24 hrs.
Com fórmula eu não consegui fazer, mas seria ótimo também, se alguém tiver alguma ideia por fórmula.
Veja a planilha anexa q ainda considera feriados.
Se sua dúvida foi respondida marque o tópico como RESOLVIDO usando o botão com marca verde.
Obrigado Djunqueira! Mas no meu caso eu preciso adicionar horas na data/hora inicial e a saída deve ser a data hora final . Eu resolvi separando as horas dos minutos, aí trabalhei com os valores inteiros e eliminei o problema de quando fica acima de 24 horas. Obrigado pessoal.