Option Compare Text 'facultatif, pour ignorer la casse
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [H1,J1]) Is Nothing Then Exit Sub
Dim texte1 As Range, texte2 As Range, chemin$, fichier$, fs As Object
Dim test1 As Boolean, test2 As Boolean, n&, tablo(), t, rest(), i&
Target.Select
Set texte1 = [H1]: Set texte2 = [J1]
chemin = ThisWorkbook.Path & "\" 'dossier à adapter
'---recherche des fichiers---
fichier = Dir(chemin & "*.xls*") '1er fichier du dossier
Set fs = CreateObject("Scripting.FileSystemObject")
While fichier <> ""
test1 = IIf(texte1 = "", False, fichier Like "*" & texte1 & "*")
test2 = IIf(texte2 = "", False, fichier Like "*" & texte2 & "*")
If test1 Or test2 Then
n = n + 1
ReDim Preserve tablo(1 To 2, 1 To n)
tablo(1, n) = fichier
tablo(2, n) = CDbl(CDate(fs.getfile(chemin & fichier).datecreated))
End If
fichier = Dir 'fichier suivant du dossier
Wend
Set fs = Nothing 'RAZ
'---restitution---
Application.ScreenUpdating = False
Range("A2:E" & Rows.Count).ClearContents 'RAZ
If n Then
'---liste complète triée par dates/heures---
[A2].Resize(n, 2) = Application.Transpose(tablo) 'maximum 65536 lignes
[A2].Resize(n, 2).Sort [B2], xlAscending, Header:=xlNo
'---doublons de dates---
t = [A1].Resize(n + 2, 2)
ReDim rest(1 To n, 1 To 2)
For n = 2 To n + 1
t(n, 2) = Int(t(n, 2))
If t(n, 2) = t(n - 1, 2) Or t(n, 2) = Int(t(n + 1, 2)) Then
i = i + 1
rest(i, 1) = t(n, 1)
rest(i, 2) = t(n, 2)
End If
Next
If i Then [D2].Resize(i, 2) = rest
End If
'---largeurs des colonnes---
[A:B,D:E].ColumnWidth = 10.71
[A:E].Columns.AutoFit
Union(texte1, texte2).EntireColumn.AutoFit
If texte1.ColumnWidth < 10.71 Then texte1.ColumnWidth = 10.71
If texte2.ColumnWidth < 10.71 Then texte2.ColumnWidth = 10.71
End Sub