[VBA] Prendre la date la plus récente

Résolu
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

  1. Contributeur
    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