Fichier PDF le plus récent dans un dossier
Bonjour,
Je souhaite faire une macro pour chercher le fichier PDF le plus récent dans un dossier et contenant une chaîne de caractère spécifique :
For Each oFic In moFSO.GetFolder(psRep).Files
If oFic.Type Like "*.pdf*" And oFic.Name Like "*ET*" Then...
Il me manque la notion "LastDateModified" pour choisir le fichier le plus récent parmi tous.
Et je ne sais pas comment faire...
Pour ensuite rechercher une expression dans le nom du fichier :
If oFic.Name Like "*v1*" Then
Range("B" & i).Value = "v1"
End If
Merci pour votre aide.
Bonjour,
voici un exemple à tester,
Sub ProprietesFichiers_LastSave()
'Nécessite d'activer la référence Microsoft Shell Controls and Automation
Dim objShell As Shell32.Shell
Dim strFileName As Shell32.FolderItem
Dim objFolder As Shell32.Folder
Dim Resultat As String, Reponse As String
Dim i As Byte
Dim liste() As Double
Set objShell = CreateObject("Shell.Application")
'Répertoire cible
Set objFolder = objShell.Namespace("C:\Users\isabelle\Documents\__isabelle\cp")
'boucle sur tous les elements du repertoire
For Each strFileName In objFolder.Items
x = x + 1
'Pour que les dosssiers ne soient pas pris en comptes
If strFileName.isFolder = False Then
If objFolder.getDetailsOf(strFileName, 0) Like "*v1*" Then
ReDim Preserve liste(x)
liste(x) = CDate(objFolder.getDetailsOf(strFileName, 3))
End If
End If
Next
Cells(1, 1) = Application.Max(liste)
End SubBonjour,
Tout d'abord merci. Si je comprends tu récupères toutes les dates dans une liste et tu choisis la date la plus récente dans cette liste ?
Mais je souhaiterais sélectionner le fichier le plus récent pour copier-coller des infos comme son chemin et ensuite le renommer...
Range("D" & i).Value = psRep & "\" & oFic.Name
Pour renommer, j'étais parti sur :
Dim ancienNom As String
Dim nouveauNom As String
ancienNom = psRep & "\" & oFic.Name
nouveauNom = psRep & "\" & Cells(i, 1).Value & "_rev_" & Cells(i, 2).Value & ".pdf"
Name ancienNom As nouveauNom
Mais cela ne fonctionne pas, et si jamais le nom du fichier existe déjà, j'obtiens une erreur...
Je souhaiterais également aller visiter les fichiers des sous-répertoires éventuels ? Il y a une fonction subfolder ?
Merci.