Les répertoires créés en J, J-1 et J-2 et J-3

  • Initiateur de la discussion Initiateur de la discussion Wyrgle
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Wyrgle

XLDnaute Junior
Bonjour le forum,

Voila mon problème : mon code vérifie l'existence de répertoire créés en J, J-1, J-2 et J-3.
Pour cela je diminue le jour de la date de -1, -2, et -3 avec la variable Day_Offset comme ci-dessous :

Code:
Location = Cells(Client, 8).Value & Format(Now(), "yyyy") & "\" & Format(Now(), "mm") & "\" & Format(Now() + Day_Offset, "dd") & "\"

Ca marche bien, jours ouvrés et we inclus.
MAIS cette méthode ne fonctionne pas lors des changements de mois !!🙁🙁🙁
En effet au 1/06/2017 par exemple, cette macro vérifiera les dates 1/06, -1/06 et 0/06...mais sans vérifier les 31/05 et 30/05...

Comment faire ?

Voici le code complet :
VB:
' Si on est lundi :
If Weekday(Now()) = 2 Then
' alors on commence l'itération au vendredi :
        Day_Offset = -3
    Else
' sinon on commence hier :
        Day_Offset = -1
    End If

' On ne va pas plus loin que aujourd'hui :
    Do While Day_Offset < 1

' le répertoire à vérifier est le comme cela :
        Location = Cells(client, 8).Value & Format(Now(), "yyyy") & "\" & Format(Now(), "mm") & "\" & Format(Now() + Day_Offset, "dd") & "\"
' si le répertoire n'existe pas :
        If Len(Dir(Location, vbDirectory)) = 0 Then
' alors cellule en rouge :
             Cells(client, 9).Interior.ColorIndex = 3
        Else
' si le répertoire existe -->: cellule verte
            Cells(client, 9).Interior.ColorIndex = 10
        End If
' on passe au jour suivant :
        Day_Offset = Day_Offset + 1
Loop
 
Bonsoir Wirgle,

A tout hasard:
Dans la formule de Location=..., l'année et le mois sont constants ; ce sont toujours l'année et le mois de la date du jour. il faudrait peut-être remplacer Now() par Now() + Day_Offset (comme vous l'avez fait pour le jour) ?
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
418
Réponses
2
Affichages
511
Retour