OVH Cloud OVH Cloud

Date de création

12 réponses
Avatar
Mario Roy
Bonsoir

Dans les informations d'un fichier l'on retrouve la date de la création de
ce fichier ainsi que l'auteur et d'autre information .

J'aimerais savoir s' il est possible de changé la date de la création d'un
fichier sans être obligé de recollé toutes les pages de ce fichiers et de
l'enregistré sous un nouveau nom .

Merci

2 réponses

1 2
Avatar
Mario Roy
Bonjour Daniel,

De quel facon je dois faire pour adapter ce que vous me proposé

Merci
MArio
"Daniel.M" a écrit dans le message de
news:
Salut Mario,


Mais mon probleme n'est pas encore résolu j'ai essayé ce que vous m'avez
proposé mais la date de création ne ce change pas c'est seulement les
autres


date qui ce change


Avant le dodo et juste avant que Frédéric ne se lève. :-)


http://groups.google.com/groups?hl=fr&lr=&ie=UTF-8&c2coff=1&selm:CF4102.357E26E6%40wanadoo.fr


Tu adapteras ChangeDatesFichier() si tu ne veux que changer la Date de
Création

(la routine change aussi la date de Modification).

Salutations,

Daniel M.





Avatar
Daniel.M
Salut Mario,

De quel facon je dois faire pour adapter ce que vous me proposé



Ça le fait directement chez moi sans problème : ça change la DATE de création du
fichier Excel (dans lequel la proc est mise) au 2 février 2001 à 12:10.

Quand tu exécutes le code, n'obtiens-tu pas le résultat désiré?

Je l'ai adapté pour moi en ne faisant que changer la date de création (pas la
date de modification, ni celle du dernier accès).

'FS
'=========================== Type FILETIME
dwLowDateTime As Long
dwHighDateTime As Long
End Type

Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type

Const GENERIC_WRITE = &H40000000
Const OPEN_EXISTING = 3
Const FILE_SHARE_READ = &H1
Const FILE_SHARE_WRITE = &H2

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" _
(ByVal lpFileName As String, ByVal dwDesiredAccess As Long, _
ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, _
ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, _
ByVal hTemplateFile As Long) As Long

Private Declare Function SetFileTime Lib "kernel32" _
(ByVal hFile As Long, lpCreationTime As FILETIME, _
lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long

Private Declare Function GetFileTime Lib "kernel32" _
(ByVal hFile As Long, lpCreationTime As FILETIME, _
lpLastAccessTime As FILETIME, lpLastWriteTime As FILETIME) As Long

Private Declare Function SystemTimeToFileTime Lib "kernel32" _
(lpSystemTime As SYSTEMTIME, lpFileTime As FILETIME) As Long

Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long

Private Declare Function LocalFileTimeToFileTime Lib "kernel32" _
(lpLocalFileTime As FILETIME, lpFileTime As FILETIME) As Long


Sub ChangeDateCreationFichier()

Dim DateCreation As Date

Dim i As Integer
Dim hdle As Long
Dim ftCreation As FILETIME, ftCreation2 As FILETIME, ftLocalCreation As FILETIME
Dim ftModif As FILETIME, ftLocalModif As FILETIME
Dim ftLastAcc As FILETIME
Dim STCreation As SYSTEMTIME, STModif As SYSTEMTIME
Dim LeFichier As String


'Ici, c'est pour le 5 février 2001 à 12:10, à adapter
DateCreation = DateSerial(2001, 2, 5) + TimeSerial(12, 10, 0)

LeFichier = ThisWorkbook.FullName

With STCreation
.wYear = Year(DateCreation)
.wMonth = Month(DateCreation)
.wDay = Day(DateCreation)
.wDayOfWeek = Weekday(DateCreation) - 1
.wHour = Hour(DateCreation)
.wMinute = Minute(DateCreation)
.wSecond = Second(DateCreation)
.wMilliseconds = 0
End With

' convert system time to local time
SystemTimeToFileTime STCreation, ftLocalCreation

' convert local time to GMT
LocalFileTimeToFileTime ftLocalCreation, ftCreation

' open the file to get the filehandle
hdle = CreateFile(LeFichier, _
GENERIC_WRITE, FILE_SHARE_READ Or FILE_SHARE_WRITE, ByVal 0&, _
OPEN_EXISTING, 0, 0)

' change date/time property of the file
GetFileTime hdle, ftCreation2, ftModif, ftLastAcc
SetFileTime hdle, ftCreation, ftModif, ftLastAcc

' close the handle
CloseHandle hdle
TestInfos

End Sub
'===========================
Salutations,

Daniel M.

1 2