[VBA] Prendre la date la plus récente

Résolu
MoYoX Messages postés 127 Date d'inscription   Statut Membre Dernière intervention   -  
michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour tout le monde,

Je suis confronté à un petit problème en VBA ...

En effet, dans mon code, je vérifie, dans un dossier unique, la présence de fichiers.
Avec une For Each, j'ai tout une portion de code qui s'éxécute à chaque fichier présent.

Donc à partir de là j'peux récupérer le chemin, la date, le nom etc ... donc j'arrive à récupérer la date de création de chaque fichier à chaque passage dans la boucle via une FileDateTime, je découpe, toujours à chaque passage dans la boucle, le mois, l'année, le jour ... mais je n'arrive pas à garder la date la plus récente.

J'avais essayé un truc du genre:
Si, à chaque passage dans la boucle, la date est supérieure à celle du passage d'avant, on la garde dans une variable.
J'comptais comparer l'année, puis le mois, puis le jour dans un if dans un if dans un if !
En gros.

Mais je n'y arrive pas ... je ne sais pas pourquoi il me garde une seule date, mais pas la plus récente.

Voilà à quoi ressemble le début de ma boucle:

 For Each objFichier In objDossier.Files

        If (InStr(1, objFichier.Name, ".wav", 1) > 0) Then
           
            If (Mid(objFichier.Name, 1, 1) = "~") Then GoTo label
            finPhrase = ""
            finPhrase = " message vocal."
 
            dateComplete = Left(FileDateTime(objFichier.Path), 10)

            anneeTemp = Right(dateComplete, 4)
            moisTemp = Mid(dateComplete, 4, 2)
            jourTemp = Left(dateComplete, 2)
            
...
            

(oui c'est pour vérifier des messages vocaux provenant du PABX en .wav)
Et c'est là que je bloque.

Si quelqu'un avait une idée, ou un algo qui va bien ... je lui en serait très reconnaissant !
Merci d'avance !


1 réponse

michel_m Messages postés 16602 Date d'inscription   Statut Contributeur Dernière intervention   3 314
 
Bonjour


Dim recent As Long
If IsDate(datecomplete) Then
recent = DateSerial(Year(datecomplete), Month(datecomplete), Day(datecomplete))
End If

recent te donne un nombre représentant le numero de jour de datecomplete
par ex aujourdhui 5/4/11 est le jour 40638 après le 1/1/1900
Michel
1