Somar Dias sem contar com os Feriados, os Sábados e os Domingos
Adquira a assinatura vitalícia do site e passe a ter acesso aos arquivos exemplos, vídeos, revistas, livros e ao kit de montagem de ribbons. Você terá suporte por e-mail, caso necessite tirar dúvidas pontuais. Clique AQUI e veja como obter um dos nossos planos. Clique AQUI e faça uma visita a seção Downloads do site e verifique as centenas de arquivos que estará à sua disposição. Clique AQUI e faça uma visita a seção Vídeos do site e veja a lista que estará disponível ao se tornar o nosso assinante vitalício. Clique AQUI e saiba mais detalhes sobre o kit de montagem de ribbons (deixe seus aplicativos com aspecto profissional).
Usuário Marcos :
Bom dia!
Gostaria de saber como programar a entrega de um pedido para daqui a dez dias úteis, ou seja, sem contar com os feriados, os sábados e os domingos.
Grato
Suporte:
Marcos, vamos supor que você tenha os campos DataLançamento e DataEntrega.
No evento "Após atualizar" do campo DataLançamento, coloque:
Faça o login aqui para ter acesso ao código.
Observe que você terá que criar a função fncFeriado(). Para efeito apenas didático, veja esta função que simula uma data de feriado.
Private Function fncFeriado(dta As Date) As Boolean fncFeriado = dta = #6/4/2015# End Function
Sobre a montagem da função feriado, você encontra disponível AQUI, neste meu artigo:
Ao entrar com a data de lançamento 03/06/2015, você terá como resultado, a data de entrega no dia 18/06/2015. Confere ?
Usuário Marcos :
Preciso dizer que funcionou perfeitamente!
Mais uma vez obrigado, Avelino!
8 comentário(s) Francisco Ferreira de Avila 05/02/2022 07:22:33 Professor Avelino. Há um ano que eu procurava essa solução, somar uma quantidade de dias úteis a uma data e me retornar a data futura, vi algumas só, que muito complicadas. Eu com meus 72 anos não conseguia adaptar à minha necessidade. O Seu material é excelente e sua didática é fantástica e objetiva, Parabéns! Francisco Ferreira de Avila 04/02/2022 11:55:45 Professor Avelino! Que maravilha, fantástico. Coloquei no campo do formulário "DtaInicio_ Exec_Etapa" o evento "Após atualizar" o código e ajustei à minha finalidade, com a função fncFeriado() deu certo. Retornou no Campo DtaFim_Exec_Etapa a data de finalização. Trabalho com Cronograma de obra, a obra é dividida em 21 Etapas, cada etapa tem prazo em dias uteis para execução que variam de 3 a 40 dias. por exemplo: a Etapa Fundação o prazo para execução são 10 dias úteis, usei ela. DtaInicio Exec_Etapa = 02/02/2022 retono DtaFim_Exec_Etapa = 16/02/2022 Marcela 18/11/2019 08:24:18 Deu certo! Mto obrigada!!!! Avelino Sampaio 15/11/2019 09:09:21 Marcela ... Do While Not j > me!SuaCaixaNumeroDeDias - 1 ... Marcela 15/11/2019 06:32:43 explico: me servirá para contar prazos processuais Marcela 15/11/2019 06:30:12 Agora que vi que a função só soma 10 dias úteis. rsrsr teria como ensinar a somar o número de dias úteis que eu informasse numa cx de texto? Avelino Sampaio 14/11/2019 00:52:21 Marcela, se pretende utilizar uma tabela, basta usar a função Dcount() para pesquisar se a data existe na tabela. Algo assim: ... If Dcount("*","NomeDaTabelaFeriado","DataFeriado = #" & Format(dtaAnalisada, "mm/dd/yyyy") & "#") =0 Then ... Sucesso! Marcela 13/11/2019 18:15:55 Não entendi a parte de criar a função fncFeriado(). Teria como mostrar como faz pra essa função olhar se a data está listada numa tabela que eu criaria com os feriados? E desconsiderar essa dia no cálculo da data final |