Notifications
Clear all

Format(Now()

4 Posts
2 Usuários
0 Reactions
1,179 Visualizações
(@arthurbrs)
Posts: 12
Active Member
Topic starter
 

Pessoal, boa tarde!

Mais um vez preciso da ajuda de vocês!

Tenho esse código:

Workbooks.Open Filename:= _
"C:TESTE_" & Format(Now() - 1, "ddmmyyyy") & "_TESTE.xls"

Ele abre o arquivo "teste" que é salvo todo dia na pasta C:, com data retroativa... Preciso que o código só considere dias uteis..

Podem me ajudar? Obrigado!

 
Postado : 02/05/2016 1:33 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

arthur, quando você diz - "Preciso que o código só considere dias uteis", você se refere aos dias de semana normal de 2ª a 6ª ou teria de considerar alguns feriados ?

A principio pelo que entendi a rotina abre um arquivo com a data do dia em que está sendo executada, então o ideal seria adicionar ou um inputbox ou um outro campo para se digitar a data e aliado a uma rotina que verifica se é dia útil.

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/05/2016 1:56 pm
(@arthurbrs)
Posts: 12
Active Member
Topic starter
 

Mauro, boa tarde!

A rotina abre um arquivo com data d-1 do dia em que ele está sendo executada.

Quando eu coloco "Now() - 1", ele considera todos os dias, por exemplo, na segunda ele vai procurar um arquivo com data de domingo.. Esse é o problema... Estou tentando fazer com ele desconsidere finais de semana e feriados..

 
Postado : 02/05/2016 2:08 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

arthur, veja se ajuda, é verificado somente os Sabados e Domingos, quanto a feriados, o ideal seria ter uma tabela e comparar.

Sub VerificaFimSemana()
    Dim sDataNow As Date
    Dim LResult As String
    
    sDataNow = Format(Now() - 1, "dd/mm/yyyy")
    
    If Weekday(sDataNow, vbMonday) < 6 Then
        
        sdd = Weekday(sDataNow, 1)
        
        MsgBox sDataNow & " - é  " & WeekdayName(sdd, False) & " - Não é Fim de Semana"
        
        LResult = Replace(sDataNow, "/", "")
        
        Workbooks.Open Filename:="C:TESTE_" & LResult & "_TESTE.xls"

    Else
    
        sdd = Weekday(sDataNow, 1)
        MsgBox sDataNow & " - é  " & WeekdayName(sdd, False) & " - Fim de Semana"
        
    End If

End Sub

No link abaixo tem várias funções de verificação, veja se consegue adaptar alguma delas.
Criando Funções em VBA - Datas
http://dicasdeexcelevba.blogspot.com.br ... datas.html

[]s

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 02/05/2016 8:10 pm