Ir ao conteúdo
  • Cadastre-se
Entre para seguir isso  
Jorge Thomaz

Auxílio em Macro e Função criados no Excel2007

Recommended Posts

Boa tarde,

Estou com dois graves problemas em que preciso de uma solução urgente....

1 - criei no excel 2007um livro ponto que me informa os dias de semana e os feriados do mês.

Só que no calc não aparece os feriados e sim, a mensagem de #valor ao invés de aparecer feriado......

segue macro:

Public Function VerificaSeFeriado(dDataX As Date) As Boolean

Dim FeriadosFixos(7) As Date

Dim FeriadosMoveis(2) As Date

Dim iAnoX As Integer

Dim dPascoa As Date

iAnoX = Year(dDataX)

dPascoa = CalculaPascoa(iAnoX)

FeriadosFixos(0) = CDate("1/1/" & iAnoX) 'Confraternização Universal

FeriadosFixos(1) = CDate("21/4/" & iAnoX) 'Tiradentes

FeriadosFixos(2) = CDate("1/5/" & iAnoX) 'Trabalho

FeriadosFixos(3) = CDate("7/9/" & iAnoX) 'Independência do Brasil

FeriadosFixos(4) = CDate("12/10/" & iAnoX) 'Nossa Senhora Aparecida

FeriadosFixos(5) = CDate("2/11/" & iAnoX) 'Finados

FeriadosFixos(6) = CDate("15/11/" & iAnoX) 'Proclamação da Repúplica

FeriadosFixos(7) = CDate("25/12/" & iAnoX) 'Natal

FeriadosMoveis(0) = DateAdd("d", -2, dPascoa) 'Sexta Paixão

FeriadosMoveis(1) = DateAdd("d", -47, dPascoa) 'Carnaval

FeriadosMoveis(2) = DateAdd("d", 60, dPascoa) 'Corpus Christi

Select Case dDataX

Case FeriadosFixos(0), FeriadosFixos(1), FeriadosFixos(2), FeriadosFixos(3), FeriadosFixos(4), FeriadosFixos(5), FeriadosFixos(6), FeriadosFixos(7)

VerificaSeFeriado = True

Case FeriadosMoveis(0), FeriadosMoveis(1), FeriadosMoveis(2)

VerificaSeFeriado = True

Case Else

VerificaSeFeriado = True

End Select

End Function

Private Function CalculaPascoa(iAno As Integer) 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 P As Integer

Dim Q As Integer

Dim R As Integer

Dim S As Integer

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

P = (N + 40) \ 44 'o inteiro de [(N + 40) ÷ 44]

Q = 3 + P

R = Q \ 4 'o inteiro de (Q ÷ 4)

S = N + 28 - (31 * R)

CalculaPascoa = CDate(S & "/" & Q & "/" & iAno)

End Function

2 - E o outro que a função/fórmula que no excel funciona perfeitamente mas no calc, dá também a mensagem :#valor.

segue função:

=SE(C14="";"";SE(B14="";FIMMÊS(C14;0)-$C$10+1;SE(D14="";$C$11-FIMMÊS(B14;0);FIMMÊS(C14;0)-FIMMÊS(B14;0))))

Me mande com a máxima urgência a solução, pois, trabalho em uma empresa que usa o calc e não excel, e o diretor está me cobrando isso....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora
Entre para seguir isso  





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×