Página 1 de 1

Função que retorna data e dias

Enviado: Qua Jul 11, 2018 8:45 pm
por caleonel
Pessoal, boa noite.
Eu utilizo muito duas funções do Excel que são: DIATRABALHO.INTL que me retorna a data e o DIATRABALHOTOTAL.INTL que retorna dias, só que estou criado um sistema de cadastro de chamados em VBA e não sei como usar essas funções: WORKDAY.INTL e NETWORKDAYS.INTL.
Alguém tem algum exemplo para me ajudar?
Obrigado

Re: Função que retorna data e dias

Enviado: Qui Jul 12, 2018 10:05 pm
por webmaster
Você está chamando pelo WorksheetFunction?

Re: Função que retorna data e dias

Enviado: Seg Jul 16, 2018 8:30 pm
por caleonel
Eu mesmo criei meu código e caso alguém necessite pois não encontrei nada nos fóruns que pesquisei. Vai minha contribuição:

Código: Selecionar todos

Dim dtfini As Double
Dim ultima
Dim dias As Double
Dim fimdesemana As Double
Dim dtini As Double
Private Sub CommandButton1_Click()
If optdtprev = True Then

ultima = Range("A1").End(xlDown).Row
Range("A1:A" & ultima).Select

dias = 15

dtini = CDate(txtdtini.Text)

txtdtprev.Text = CDate(Application.WorksheetFunction.WorkDay(dtini, 15, ultima))
Else
If otpdias = True Then

dtini = CDate(txtdtini.Text)
dtfini = CDate(txtdtfini.Text)
fimdesemana = 1

txtdias.Text = CDbl(Application.WorksheetFunction.NetworkDays_Intl(dtini, dtfini, 1, ultima))
End If
End If

End Sub
A variável "ultima" seleciona na planilha todos os feriados do ano.

Re: Função que retorna data e dias

Enviado: Ter Jul 17, 2018 11:39 am
por webmaster
Thumbs up!

Re: Função que retorna data e dias - Resolvido

Enviado: Ter Jul 17, 2018 8:02 pm
por caleonel
Dim dtfini As Double
Dim ultima
Dim dias As Double
Dim fimdesemana As Double
Dim dtini As Double
Private Sub CommandButton1_Click()
If optdtprev = True Then

ultima = Range("A1").End(xlDown).Row
Range("A1:A" & ultima).Select

dias = 15

dtini = CDate(txtdtini.Text)

txtdtprev.Text = CDate(Application.WorksheetFunction.WorkDay(dtini, 15, ultima))
Else
If otpdias = True Then

dtini = CDate(txtdtini.Text)
dtfini = CDate(txtdtfini.Text)
fimdesemana = 1

txtdias.Text = CDbl(Application.WorksheetFunction.NetworkDays_Intl(dtini, dtfini, 1, ultima))
End If
End If

End Sub