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

Signaler
Messages postés
47
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
18 juin 2020
-
Messages postés
47
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
18 juin 2020
-
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

1 réponse

Messages postés
6975
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
17 octobre 2020
114
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!


Messages postés
47
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
18 juin 2020

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