Enregistrement fichier date précédent jour ouvré [Résolu]

Messages postés
43
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
9 juillet 2019
- - Dernière réponse : 1Alexiiis
Messages postés
43
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
9 juillet 2019
- 9 juil. 2019 à 19:22
Bonjour,

Le code ci-dessous fonctionne bien pour enregistrer avec la date du jour :
Sub Enregistrer()
    Application.DisplayAlerts = False
    ChDir "I:\Documents"
    ActiveWorkbook.SaveAs Filename:="I:\Documents\" & Format(Date, "yyyy.mm.dd") & " - Blabla.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Range("A1").Select
    Application.DisplayAlerts = True
End Sub

Cependant, je souhaiterais que ça soit le précédent jour ouvré (et non la date du jour).
Je ne vois pas du tout comment faire. Pourriez vous m'aider svp ?


Merci par avance

Cordialement,
AS
Afficher la suite 

1 réponse

Meilleure réponse
Messages postés
6142
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
11 juillet 2019
81
1
Merci
Bonjour,

Tu cherches d'abord le jour de la semaine de la date:

date_test = CDate("08/07/2019") 'Une date d'exemple pour essai
    jourouvre = Format(date_test, "w", 2)


lundi = 1
dimanche = 7

en fonction du résultat tu soustrais comme ceci:

Sub jour_semaine()
   Dim date_test
   Dim jourouvre
  ' date_test = CDate(Date) 'date du jour
    date_test = CDate("08/07/2019") 'Une date d'exemple pour essai
    jourouvre = Format(date_test, "w", 2)
    Select Case jourouvre
    Case Is = 1
    MsgBox DateAdd("d", -3, date_test) 'lundi
    Case Is = 7
    MsgBox DateAdd("d", -2, date_test) 'dimanche
 Case Else
 MsgBox DateAdd("d", -1, date_test) 'pour tous les autres jours
    End Select
End Sub


Voilà une manière de faire, il y en a certainement d'autres!


Dire « Merci » 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources 131 internautes nous ont dit merci ce mois-ci

1Alexiiis
Messages postés
43
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
9 juillet 2019
-
Bonjour,

Je l'ai adapté à mon code et cela fonctionne. Merci beaucoup pour ton aide !

Voici comment je l'ai adapté (ça sera peut-être utile à d'autres personnes) :
Sub jour_semaine()

   Dim date_test
   Dim jourouvre
   Dim resultat

    date_test = CDate(Date) 'date du jour
    jourouvre = Format(date_test, "w", 2)
    Select Case jourouvre
    Case Is = 1
    resultat = DateAdd("d", -3, date_test) 'lundi
    Case Is = 7
    resultat = DateAdd("d", -2, date_test) 'dimanche
    Case Else
    resultat = DateAdd("d", -1, date_test) 'pour tous les autres jours
    End Select

    Application.DisplayAlerts = False
    ChDir "I:\Documents"
    ActiveWorkbook.SaveAs Filename:="I:\Documents\" & Format(resultat, "yyyy.mm.dd") & " - Blabla.xlsx", FileFormat:=xlOpenXMLWorkbook, CreateBackup:=False
    Range("A1").Select
    Application.DisplayAlerts = True

End Sub


Encore merci !
AS
Commenter la réponse de cs_Le Pivert