Enregistrement fichier date précédent jour ouvré

Résolu
1Alexiiis Messages postés 48 Date d'inscription vendredi 14 juin 2013 Statut Membre Dernière intervention 14 décembre 2020 - 8 juil. 2019 à 21:35
1Alexiiis Messages postés 48 Date d'inscription vendredi 14 juin 2013 Statut Membre Dernière intervention 14 décembre 2020 - 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

1 réponse

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
9 juil. 2019 à 11:15
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!


1
1Alexiiis Messages postés 48 Date d'inscription vendredi 14 juin 2013 Statut Membre Dernière intervention 14 décembre 2020
9 juil. 2019 à 19:22
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
0
Rejoignez-nous