[Bom dia, tentei refazer a minha macro para que seja uma função que informe os feriados mas ainda está dando erro #NOME?]
[REM ***** BASIC *****
Public Function VerificaSeFeriado As Boolean
Dim dDatax As Date
Dim FeriadosFixos(10) As String
Dim mFeriados(3) As Date
Dim dPascoa As Date
iAno% = Year(dDataX)
dPascoa = CalculaPascoa(iAno%)
FeriadosFixos(1) = "1/1" 'Confraternização Universal
FeriadosFixos(2) = "21/4" 'Tiradentes
FeriadosFixos(3) = "1/5" 'Trabalho
FeriadosFixos(4) = "7/9" 'Independência do Brasil
FeriadosFixos(5) = "20/9" 'Revolução Farroupilha
FeriadosFixos(6) = "12/10" 'Nossa Senhora Aparecida
FeriadosFixos(7) = "2/11" 'Finados
FeriadosFixos(8) = "15/11" 'Proclamação da Repúplica
FeriadosFixos(9) = "25/12" 'Natal
FeriadosFixos(10) = "2/2" 'Navegantes
mFeriados(1) = DateAdd("d", -2, dPascoa) 'Sexta Paixão
mFeriados(2) = DateAdd("d", -47, dPascoa) 'Carnaval
mFeriados(3) = DateAdd("d", 60, dPascoa) 'Corpus Christi
With com.sun.star.text.textfield.Datetime
Select Case dDataX
Case FeriadosFixos(0), FeriadosFixos(1), FeriadosFixos(2), FeriadosFixos(3), FeriadosFixos(4), FeriadosFixos(5), FeriadosFixos(6), FeriadosFixos(7), FeriadosFixos(8), FeriadosFixos(9)
VerificaSeFeriado = True
Case mFeriados(0), mFeriados(1), mFeriados(2)
VerificaSeFeriado = True
Case Else
VerificaSeFeriado = False
End Select
End With
End Function
Private Function CalculaPascoa As Date
Dim A As Integer
Dim B As Integer
Dim C As Integer
Dim D As Integer
Dim E As Integer
Dim F As Integer
Dim G As Integer
Dim H As Integer
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim L As Integer
Dim M As Integer
Dim N As Integer
Dim O As Integer
Dim P As Integer
Dim Q As Integer
Dim R As Integer
Dim iAno As Integer
Dim Calculo As String
CalculaPascoa = Calculo
A = iAno \ 100 'o inteiro de (Ano ÷ 100)
B = iAno Mod 19 'o resto de (Ano ÷ 19)
c = (A - 17) \ 25 'o inteiro de [(A - 17) ÷ 25]
D = A \ 4 'o inteiro de (A ÷ 4)
E = (A - c) \ 3 'o inteiro de [(A - C) ÷ 3]
F = (A - D - E + (19 * B) + 15) Mod 30 'o resto de {[A - D - E + (19xB) + 15] ÷ 30}
G = F \ 28 'o inteiro de (F ÷ 28)
H = 29 \ (F + 1) 'o inteiro de [29 ÷ (F + 1)]
I = (21 - B) \ 11 'o inteiro de [(21 - B) ÷ 11]
J = G * H * I
K = F - (G * (1 - J))
L = iAno \ 4 'o inteiro de (Ano ÷ 4)
M = (iAno + L + K + 2 - A + D) Mod 7 'o resto de [(Ano + L + K + 2 - A + D) ÷ 7]
N = K - M
O = (N + 40) \ 44 'o inteiro de [(N + 40) ÷ 44]
P = 3 + O
Q = P \ 4 'o inteiro de (P ÷ 4)
R = N + 28 - (31 * Q)
CalculaPascoa = CDate (R & "/" & P & "/" & iAno)
End Function]