vb :
Private Sub Workbook_Open()
Dim FolderPath As String
Dim FileSystem As Object
Dim Folder As Object
Dim File As Object
Dim Ligne As Long
Dim Feuille As Worksheet
'Référencer l'onglet "Factures"
Set Feuille = ThisWorkbook.Worksheets("Factures")
'Chemin du dossier contenant les fichiers PDF
FolderPath = "C:\Users\solan\Desktop\pdf"
'Créer une instance de l'objet FileSystemObject
Set FileSystem = CreateObject("Scripting.FileSystemObject")
'Référencer le dossier
Set Folder = FileSystem.GetFolder(FolderPath)
'Commencer à la ligne 6
Ligne = 6
'Boucler sur chaque fichier du dossier
For Each File In Folder.Files
'Vérifier si le fichier a l'extension .pdf
If LCase(Right(File.Name, 4)) = ".pdf" Then
'Colonne A : Nom du fichier
Feuille.Cells(Ligne, 1).Value = File.Name
'Colonne B : Date de dernière modification
Feuille.Cells(Ligne, 2).Value = FileDateTime(File.Path)
'Colonne C : Lien hypertexte
Feuille.Cells(Ligne, 3).Formula = "=HYPERLINK(""" & File.Path & """,""" & File.Name & """)"
'Colonne D : Date d'accès
Feuille.Cells(Ligne, 4).Value = File.DateLastAccessed
'Passer à la ligne suivante
Ligne = Ligne + 1
End If
Next File
'Ajuster automatiquement la largeur des colonnes
Feuille.Columns("A
").EntireColumn.AutoFit
'Trier la colonne D à partir de D6 par ordre croissant
ActiveWorkbook.Worksheets("Factures").ListObjects("Tableau1").Sort.SortFields. _
Clear
ActiveWorkbook.Worksheets("Factures").ListObjects("Tableau1").Sort.SortFields. _
Add2 Key:=Range("Tableau1[[#All],[Colonne4]]"), SortOn:=xlSortOnValues, _
Order:=xlAscending, DataOption:=xlSortTextAsNumbers
With ActiveWorkbook.Worksheets("Factures").ListObjects("Tableau1").Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
' With Feuille.Range("D6
" & Feuille.Cells(Rows.Count, "D").End(xlUp).Row)
' .Sort Key1:=.Cells, Order1:=xlAscending, Header:=xlNo
' End With
'Libérer les objets
Set FileSystem = Nothing
Set Folder = Nothing
Set Feuille = Nothing
End Sub