Tenho uma planilha onde preciso calcular a quantidade de dias úteis de um determinado mês, porém como a versão do Office na empresa ainda é a XP, não tenho acesso as funções DIATRABALHO ou DIATRABALHOTOTAL.
Alguém conhece alguma maneira de efetuar esse cálculo sem utilizar essas funções?
Buscando no google encontrei a macro abaixo:
Public Function CalculaDiasUteis(DataIni, Datafinal) As Integer
Dim cont As Integer
Dim i As Variant
cont = 0
For i = DataIni To Datafinal
If Weekday(i) <> 1 And Weekday(i) <> 7 Then
cont = cont + 1
End If
Next i
CalculaDiasUteis = cont
End Function
Ela funciona bem, porém somente considera dias não úteis sábados e domingos. Gostaria de abater também os feriados durante a semana.Montei uma tabela com todos os feriados na coluna A e chamei o intervalo de Feriados.
Tentei alterar a macro conforme abaixo, porém como não manjo nada de macro não funcionou e retorna sempre #VALOR!.
Public Function CalculaDiasUteis(DataIni, Datafinal, Feriado) As Integer
Dim cont As Integer
Dim i As Variant
cont = 0
For i = DataIni To Datafinal
If Weekday(i) <> 1 And Weekday(i) <> 7 Then
If IsError(Application.WorksheetFunction.VLookup(i, Feriado, 1, False)) = True Then
cont = cont + 1
End If
End If
Next i
CalculaDiasUteis = cont
End Function
Alguém pode me dizer o que estou fazendo de errado? Alguma sugestão de como acerto a macro?Muito Obrigado,
Ederson.