CONVERTER LINHA EM EXCEL PARA VB
peesooal esse trecho em uma linha do excel me traz a data do feriado de domigo de pascoa...e a partir dele posso calcular carnaval, sexta feira santa...etc...
=IF(MOD(2006,20)>10,DATE(2006,4,18),IF(DAY(DATE(2006,3,22)+MOD(20*MOD(2006,20)+24,30)+MOD(6*MOD(20*MOD(2006,20)+24,30)+4*MOD(2006,7)+2*MOD(2006,4)+5,7))=26,DATE(2006,4,20),DATE(2006,3,22)+MOD(20*MOD(2006,20)+24,30) +MOD(6*MOD(20*MOD(2006,20)+24,30)+4*MOD(2006,7)+2*MOD(2006,4)+5,7)))
esse eh o trecho que fiz em vb..
Dim m1, m2, m3, m4, m5, m6, m7 As Integer
Dim m8, m9, m10, m11, m12, m13, m14 As Integer
Dim Ano%
Dim Relval#
Ano = 2006
If ((2006 Mod 20) > 10) Then
Relval = DateSerial(Ano, 4, 18)
Else
m1 = Ano Mod 20
m2 = (20 * m1 + 24) Mod 30
m3 = (6 * m2 + 4 * m1 + 2 * m1 + 5) Mod 7
If (Day(DateSerial(Ano, 3, 22) + m2 + m3)) = 26 Then
Relval = DateSerial(Ano, 4, 20)
Else
m4 = (20 * m1) + 24 Mod 30
m5 = (20 * m1) + 24 Mod 30
m6 = (6 * m5 + 4 * m1 + 2 * m1 + 5) Mod 7
Relval = DateSerial(Ano, 3, 22) + m4 + m6
End If
End If
MsgBox Relval
MsgBox DateAdd("D", Relval, Empty)
mas a data nao bate....o mais perto q consegui chegar foi com esse trecho, msm assim a data ta sendo 08/15/2006 qnd tinha q ser 04/16/2006....c alguem conseguir transformar, ou tiver outro jeito de calcular o esse feriados moveis...por favor me ajudem...
valew
=IF(MOD(2006,20)>10,DATE(2006,4,18),IF(DAY(DATE(2006,3,22)+MOD(20*MOD(2006,20)+24,30)+MOD(6*MOD(20*MOD(2006,20)+24,30)+4*MOD(2006,7)+2*MOD(2006,4)+5,7))=26,DATE(2006,4,20),DATE(2006,3,22)+MOD(20*MOD(2006,20)+24,30) +MOD(6*MOD(20*MOD(2006,20)+24,30)+4*MOD(2006,7)+2*MOD(2006,4)+5,7)))
esse eh o trecho que fiz em vb..
Dim m1, m2, m3, m4, m5, m6, m7 As Integer
Dim m8, m9, m10, m11, m12, m13, m14 As Integer
Dim Ano%
Dim Relval#
Ano = 2006
If ((2006 Mod 20) > 10) Then
Relval = DateSerial(Ano, 4, 18)
Else
m1 = Ano Mod 20
m2 = (20 * m1 + 24) Mod 30
m3 = (6 * m2 + 4 * m1 + 2 * m1 + 5) Mod 7
If (Day(DateSerial(Ano, 3, 22) + m2 + m3)) = 26 Then
Relval = DateSerial(Ano, 4, 20)
Else
m4 = (20 * m1) + 24 Mod 30
m5 = (20 * m1) + 24 Mod 30
m6 = (6 * m5 + 4 * m1 + 2 * m1 + 5) Mod 7
Relval = DateSerial(Ano, 3, 22) + m4 + m6
End If
End If
MsgBox Relval
MsgBox DateAdd("D", Relval, Empty)
mas a data nao bate....o mais perto q consegui chegar foi com esse trecho, msm assim a data ta sendo 08/15/2006 qnd tinha q ser 04/16/2006....c alguem conseguir transformar, ou tiver outro jeito de calcular o esse feriados moveis...por favor me ajudem...
valew
Pra calcular feriados como vc ta pretendendo da uma olhada nesta dica do casper.
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=1645&TxtSearch=feriado&CmbSort=ftitulo&varPagina=1
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=1645&TxtSearch=feriado&CmbSort=ftitulo&varPagina=1
Tópico encerrado , respostas não são mais permitidas