Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Função que retorna data e dias
Função que retorna data e dias
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
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
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:
A variável "ultima" seleciona na planilha todos os feriados do ano.
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
Re: Função que retorna data e dias - Resolvido
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
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