Date: prev next · Thread: first prev next last
2013 Archives by date, by thread · List index


http://ask.libreoffice.org/pt-br/users/18/grafeno/ (Grafeno) postou um 
http://ask.libreoffice.org/pt-br/question/752/como-posso-converter-um-macro-criado-no-excel-2007-que-me-da-os-feriados-como-forma-de-funcao/?comment=844#comment-844
 (comment)

Commented by Grafeno:

O erro "#VALOR!" dá a entender que o conteúdo da célula A17 não é uma data. Veja se colocando 
"1/11/2012" lá dentro o resultado vem. Depois você pode ir em "" Formatar >> Células... >> 
Categoria: Data > Código do Formato: DD "" para exibir apenas o dia na célula.

In reply to Jorge Thomaz's answer:

Para poder entender estou postando a planilha aqui:  http://postimg.org/image/xsus6gosd/sem  
titulo. Vai ficar mais fácil compreender o meu problema.. Obrigado

In reply to Jorge Thomaz's question:

Como posso converter um macro criado no excel 2007 que me dá os feriados como forma de função

Tags:

Macro, função, FERIADO, Calc.

[Public Function VerificaSeFeriado(dDataX As Date) As Boolean

Dim FeriadosFixos(9) As String

Dim FeriadosMoveis(2) As Date

Dim iAnoX As Integer

Dim dPascoa As Date

iAnoX = Year(dDataX)

dPascoa = CalculaPascoa(iAnoX)

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

FeriadosFixos(1) = "21/4"            'Tiradentes

FeriadosFixos(2) = "1/5"             'Trabalho

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

FeriadosFixos(4) = "20/9"            'Revolução Farroupilha

FeriadosFixos(5) = "12/10"           'Nossa Senhora Aparecida

FeriadosFixos(6) = "2/11"            'Finados

FeriadosFixos(7) = "15/11"           'Proclamação da Repúplica

FeriadosFixos(8) = "25/12"           'Natal

FeriadosFixos(9) = "2/2"             'Navegantes

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), FeriadosFixos(8), FeriadosFixos(9)

VerificaSeFeriado = True

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

VerificaSeFeriado = True

Case Else

VerificaSeFeriado = False

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]

Para mudar a frequência e conteúdo dos alertas, visite 
http://ask.libreoffice.org/pt-br/users/279/lista-usuarios/subscriptions/ (seu perfil de usuário).

Se achar que essa mensagem foi enviada por engano, avise o administrador do forum em 
mailto:evgeny.fadeev@gmail.com (evgeny.fadeev@gmail.com).

Atenciosamente,Administrador do
-- 
Você está recebendo e-mails da lista usuarios@pt-br.libreoffice.org
# Informações sobre os comandos disponíveis (em inglês):
  mande e-mail vazio para usuarios+unsubscribe@pt-br.libreoffice.org
# Cancelar sua assinatura: mande e-mail vazio para:
  usuarios+unsubscribe@pt-br.libreoffice.org
# Arquivo de mensagens: http://listarchives.libreoffice.org/pt-br/usuarios/

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.