Solved

What is the difference between the general create date and the statistics create date?

Posted on 2011-02-17
10
260 Views
Last Modified: 2012-05-11
I use a template to create an Excel workbook that has been in use a long time.
I want to use brettd code to insert the creation date, however the files seem to have two creation dates.
1. Under the General tab of the workbook there is the date that the file was created from the template.
2. Under Statistics tab of the workbook there is the date that the template was created

ActiveWorkbook.BuiltinDocumentProperties("Creation Date") .....seems to return the "Statistics" create date
I would like to return "General"  create date

Is that possible??
0
Comment
Question by:spar-kle
  • 5
  • 4
10 Comments
 
LVL 8

Expert Comment

by:ragnarok89
ID: 34922012
From within any module in the Visual Basic Editor, choose from the main menu Tools, References and make sure that "Microsoft Scripting Runtime" is checked. Then create this function:

Function getFileDate(strFileName As String) As Date
   Dim fso As Scripting.FileSystemObject
   Dim file As Scripting.file
   Set fso = New FileSystemObject
   Set file = fso.GetFile(strFileName)
   getFileDate = file.DateCreated
End Function

Then, within your code, you can use for instance:

getFileDate("C:\test.txt")

to get the Date Created for that file.

Al
0
 

Author Comment

by:spar-kle
ID: 34922072
Thanks for your answer Al
However, I'm not quite sure how I can use this in conjunction with brettdj code
...please advise
Thanks
Des
0
 
LVL 50

Expert Comment

by:Dave Brett
ID: 34922105
Des,

That is interesting

In Excel 2010 the creation date of a file from a template is the original date, and The CreationDate does return this on my test

Are you running Excel 2003?

The code below returns the template creation date (2006) with ActiveWorkbook.BuiltinDocumentProperties("Creation Date"), then the actual file creation date (today)using the filesystemobject on my testing of a new file created from a template

Cheers

Dave
MsgBox ActiveWorkbook.BuiltinDocumentProperties("Creation Date")
    Set objfso = CreateObject("scripting.filesystemobject")
    Set objfil = objfso.GetFile(ActiveWorkbook.FullName)
    MsgBox objfil.DateCreated

Open in new window

0
Courses: Start Training Online With Pros, Today

Brush up on the basics or master the advanced techniques required to earn essential industry certifications, with Courses. Enroll in a course and start learning today. Training topics range from Android App Dev to the Xen Virtualization Platform.

 
LVL 50

Expert Comment

by:Dave Brett
ID: 34922109
> However, I'm not quite sure how I can use this in conjunction with brettdj code
I don't think it gives you what you need - it will give you the file creation date not the template date
0
 

Author Comment

by:spar-kle
ID: 34922154
Thanks Dave
This file is in Excel 2007 format.
The MsgBox code returns template creation date, then actual date
Thanks
Des
0
 

Author Comment

by:spar-kle
ID: 34922174
sorry I should have said thta it is in 2003 format.
I was looking at it in 2007 at home.
It was in 2003 format at work..
0
 
LVL 50

Accepted Solution

by:
Dave Brett earned 500 total points
ID: 34922276
Doesn't this then do what you want already?

It you wanted actual date rather than template creation then pls try this

Cheers

Dave


Sub Change()
'uses http://www.experts-exchange.com/A_2839.html
    Dim objFso
    Dim objFil
    Dim Wb As Workbook
    Dim strFName As String
    Dim strFolderName As String
    strFolderName = "c:\temp"
    Set objFso = CreateObject("scripting.filesystemobject")
    

    With Application
        .ScreenUpdating = False
        .DisplayAlerts = False
    End With

    strFName = Dir(strFolderName & "\*.xls*")
    Do While Len(strFName) > 0
        Set Wb = Workbooks.Open(strFolderName & "\" & strFName)
        Set objFil = objFso.GetFile(ActiveWorkbook.FullName)
        With Wb.Sheets(1).[a1]
            .NumberFormat = "dd-mmm-yyyy"
            .Value = objFil.DateCreated
        End With
        Wb.Save
        Wb.Close
        strFName = Dir
    Loop

    With Application
        .ScreenUpdating = True
        .DisplayAlerts = True
        .StatusBar = vbNullString
    End With

End Sub

Open in new window

0
 

Author Comment

by:spar-kle
ID: 34922282
Can you please advise how I could use the filesystemobject in the original code please?
0
 

Author Closing Comment

by:spar-kle
ID: 34922344
Thanks for your help,
That's perfect
Des
0
 
LVL 50

Expert Comment

by:Dave Brett
ID: 34922347
See post above that overalpped yours :)
0

Featured Post

Live: Real-Time Solutions, Start Here

Receive instant 1:1 support from technology experts, using our real-time conversation and whiteboard interface. Your first 5 minutes are always free.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

INDEX and MATCH can be used to great effect to replace HLOOKUP and VLOOKUP as it does not have the limitation of needing the data to be sorted so that the reference value is in the first column or row. It also has the ability to perform a bi-directi…
Drop Down List with Unique/Distinct Values (Part II - ComboBox or ListBox and Data Validation List Bonus!) David Miller (dlmille) Intro This article focuses on delivering unique, sorted lists to list objects (e.g., ComboBox, ListBox) and Dat…
This Micro Tutorial demonstrates using Microsoft Excel pivot tables, how to reverse engineer competitors' marketing strategies through backlinks.
This Micro Tutorial will demonstrate how to use longer labels with horizontal bar charts instead of the vertical column chart.

786 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question