first and last date of file

User avatar
sal21
PlatinumLounger
Posts: 4355
Joined: 26 Apr 2010, 17:36

first and last date of file

Post by sal21 »

In c:\mydir\ have variuos .txt files.

Ecah file have a name similar:
...
AAAA-A0928_11-12-2012.TXT
CCCC-A0928_09-12-2012.TXT
AAAA-B0928_11-12-2012.TXT
BBBB-A0928_10-12-2012.TXT
....

I need to store in var_min the oldest date in file name and in var_max the newestw date.

in this case:
var_min = 09-12-2012
var_max = 11-12-2012

note:
the lenght and structure name for each file are the same

User avatar
HansV
Administrator
Posts: 78493
Joined: 16 Jan 2010, 00:14
Status: Microsoft MVP
Location: Wageningen, The Netherlands

Re: first and last date of file

Post by HansV »

Try this code:

Code: Select all

Sub ListMinMax()
    Const strFolder = "C:\MyDir\"
    Dim strFile As String
    Dim var_min As Date
    Dim var_max As Date
    Dim var_cur As Date
    var_min = #1/1/9999#
    var_max = #1/1/100#
    strFile = Dir(strFolder & "*.txt")
    Do While strFile <> ""
        var_cur = DateValue(Mid(strFile, 12, 10))
        If var_cur < var_min Then var_min = var_cur
        If var_cur > var_max Then var_max = var_cur
        strFile = Dir
    Loop
    MsgBox "Min: " & Format(var_min, "dd-mm-yyyy") & _
        vbCrLf & "Max: " & Format(var_max, "dd-mm-yyyy")
End Sub
Best wishes,
Hans

User avatar
sal21
PlatinumLounger
Posts: 4355
Joined: 26 Apr 2010, 17:36

Re: first and last date of file

Post by sal21 »

HansV wrote:Try this code:

Code: Select all

Sub ListMinMax()
    Const strFolder = "C:\MyDir\"
    Dim strFile As String
    Dim var_min As Date
    Dim var_max As Date
    Dim var_cur As Date
    var_min = #1/1/9999#
    var_max = #1/1/100#
    strFile = Dir(strFolder & "*.txt")
    Do While strFile <> ""
        var_cur = DateValue(Mid(strFile, 12, 10))
        If var_cur < var_min Then var_min = var_cur
        If var_cur > var_max Then var_max = var_cur
        strFile = Dir
    Loop
    MsgBox "Min: " & Format(var_min, "dd-mm-yyyy") & _
        vbCrLf & "Max: " & Format(var_max, "dd-mm-yyyy")
End Sub
Nice solution :clapping: :thankyou: