COMPARAR DATAS E DESCONSIDERAR FIM DE SEMANA

CLAUDINEICAJE 05/06/2013 08:40:39
#424403
Bom dia

tenho seguinte problema preciso comparar datas e utilizar o critério de 3 dias uteis tendo então que desconsiderar o final de semana.

Segue abaixo trecho do codigo

i = 5
Do

[ô]se existir uma célula vazia preenche com a data de hoje
If (Range([Ô]K[Ô] & i).Value = [Ô][Ô]) And (Range([Ô]A[Ô] & i).Value <> [Ô][Ô]) Then
Range([Ô]K[Ô] & i).Value = Date
End If


If Range([Ô]J[Ô] & i).Value = [Ô][Ô] Then
Range([Ô]L[Ô] & i) = [Ô][Ô]
ElseIf Range([Ô]J[Ô] & i).Value = Range([Ô]K[Ô] & i).Value Then
Range([Ô]L[Ô] & i) = [Ô]OK[Ô]
Range([Ô]L[Ô] & i).Interior.ColorIndex = 10
ElseIf Range([Ô]J[Ô] & i).Value <> Range([Ô]K[Ô] & i).Value Then
data1s = Range([Ô]K[Ô] & i).Value
data2s = Range([Ô]J[Ô] & i).Value


[ô]resultado = DateDiff([Ô]d[Ô], data2s, data1s)
datalimite = data2s + 3

[ô]WeekdayName (datalimite)



If data1s < datalimite Then
Range([Ô]L[Ô] & i) = [Ô]OK[Ô]
Range([Ô]L[Ô] & i).Interior.ColorIndex = 10

ElseIf datalimite = data1s Then
Range([Ô]L[Ô] & i) = [Ô]Alerta[Ô]
Range([Ô]L[Ô] & i).Interior.ColorIndex = 6

Else
Range([Ô]L[Ô] & i) = [Ô]Critico[Ô]
Range([Ô]L[Ô] & i).Interior.ColorIndex = 3
End If

End If

i = i + 1
Loop Until i = 1000
MARCELO.TREZE 06/06/2013 18:59:02
#424448
Resposta escolhida
não entendi direito mas para desconsiderar o final de semana, você utiliza o Weekday desta forma

If Weekday(suadata) <> 7 Or Weekday(suadata) <> 1 then
acrecenta o dia util, ou o que vc quizer
end if

o if acima desconsidera os finais de semana, sendo que por padrão a semana começa no domingo então domingo =1, segunda =2, terça =3, quarta = 4, quinta =5, sexta = 6, sabado = 7, reparou agora porque dos nomes dos dias da semana.

WEBMASTER 06/06/2013 22:17:50
#424454
Esquecendo Excel e falando de conceito...


Sub Teste()
Dim dIni As Date
Dim dFim As Date
Dim dLoop As Date
Dim COL As New Collection

dIni = [Ô]06/01/1975[Ô]
dFim = [Ô]02/03/1975[Ô]
dLoop = dIni

Do
Debug.Print dLoop
dLoop = DateAdd([Ô]d[Ô], 1, dLoop)
If Weekday(dLoop) = vbSunday Or Weekday(dLoop) = vbSaturday Then
[ô]fim de semana
Else
COL.Add dLoop
End If
If dLoop > dFim Then Exit Do
Loop

Debug.Print [Ô]Entre [Ô] & dIni & [Ô] e [Ô] & dFim & [Ô] existem [Ô] & COL.Count & [Ô] dias uteis[Ô]
End Sub


Vai gerar:
Entre 6/1/1975 e 2/3/1975 existem 40 dias uteis

Como está em um collection basta iterar na collection para obter os dias um-a-um
CLAUDINEICAJE 09/06/2013 00:11:05
#424509
Gostaria de Agradecer

As dicas que vcs deram ajudaram bastante

Funcionou Certinho

Valew Mesmo.
Tópico encerrado , respostas não são mais permitidas