Ir ao conteúdo
  • Cadastre-se

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


Jorge Thomaz

Posts recomendados

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....

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...