Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 08/07/2006, 12h34   #1 (permalink)
XLDnaute Accro
 
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 126
Par défaut Modifier la date de création d'un classeur

Bonjour à tous,

Je cherche à modifier la date de création d’un classeur.

J’ai utilisé la propriété « builtindocumentproperties » cela marche uniquement avec l’outil « affichage-propriétés » lorsque je demande l’ouverture à partir d’Excel.
Les commandes fichiers-propriétés, que se soit dans Excel ou Windows, ne prennent pas en compte la modif.

J’ai donc cherché dans MSDN et sites divers une API ou une procédure WMI ou WSH ou… mais je n’ai pas trouvé .

Si quelqu’un pouvait me fournir une piste ou même une solution PAC (Prêt A Cuire), je lui serais reconnaissant jusqu’à la retraite !

Merci d’avance

Michel_M
michel_m est déconnecté   Réponse avec citation
ANNONCES
Vieux 08/07/2006, 14h30   #2 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 714
Par défaut Re : Modifier la date de création d'un classeur

bonjour cher Michel

Cette solution proposée par Richie Simonetti le 05/27/2002 01:14PM est facilement adaptable en VBA Excel (testé avec Excel2002)

Visual Basic: Change file date and time stamp. Question 20305077


Code:
Private 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
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_EXISTING = 3
Private Const FILE_SHARE_READ = &H1
Private 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 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 Test()
    'KPD-Team 1998
    'URL: http://www.allapi.net/
    'KPDTeam@Allapi.net
    Dim m_Date As Date, lngHandle As Long
    Dim udtFileTime As FILETIME
    Dim udtLocalTime As FILETIME
    Dim udtSystemTime As SYSTEMTIME
    Dim Fichier As String
    
    Fichier = _
    "C:\Documents and Settings\michel\dossier\general\excel\test.xls"
    m_Date = Format(Now, "DD-MM-YY")

    udtSystemTime.wYear = Year(m_Date)
    udtSystemTime.wMonth = Month(m_Date)
    udtSystemTime.wDay = Day(m_Date)
    udtSystemTime.wDayOfWeek = Weekday(m_Date) - 1
    udtSystemTime.wHour = Hour(m_Date)
    udtSystemTime.wSecond = Second(m_Date)
    udtSystemTime.wMilliseconds = 0

    ' convert system time to local time
    SystemTimeToFileTime udtSystemTime, udtLocalTime
    ' convert local time to GMT
    LocalFileTimeToFileTime udtLocalTime, udtFileTime
    ' open the file to get the filehandle
    
    lngHandle = CreateFile(Fichier, GENERIC_WRITE, _
    FILE_SHARE_READ Or FILE_SHARE_WRITE, _
    ByVal 0&, OPEN_EXISTING, 0, 0)
    ' change date/time property of the file
    SetFileTime lngHandle, udtFileTime, udtFileTime, udtFileTime
    ' close the handle
    CloseHandle lngHandle
End Sub

bon week end
MichelXld

Dernière modification par MichelXld ; 08/07/2006 à 14h33.
MichelXld est déconnecté   Réponse avec citation
Vieux 08/07/2006, 16h16   #3 (permalink)
XLDnaute Accro
 
Date d'inscription: février 2005
Localisation: Aubenas
Version Excel : Excel 2000 (PC)
Messages: 1 126
Thumbs up Re : Modifier la date de création d'un classeur

Mon cher Michel,

Content de te retrouver sur le nouveau forum.

Merci, c'est super et presque du PAC ! il ya juste à rajouter, entre autres babioles, une ligne pour insérer builtindocumentproperties pour l'ouverture avec Excel.

Cette macro est impressionnante et c'est vrai que je ne pense jamais à des création de variables avec "type".Quant aux API, ca reste du mystère pour trouver celle(s) qu'il faut.

Encore une fois, Merci

Amitiés
Michel_M
michel_m est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
Création d'un nouveau classeur si non existant natbru Forum Excel 4 28/12/2005 10h18
[vba] Copie puis creation d'un nouveau classeur lezabour Forum Excel 3 21/02/2005 15h24
Date de création d'un fichier Patrick Forum Excel Downloads - Archives 2 30/12/2004 13h47
Modifier plusieurs fichiers d'un autre classeur Ericksp Forum Excel Downloads - Archives 2 07/10/2004 19h22
Création d'une copie d'un classeur coco Forum Excel Downloads - Archives 1 30/06/2004 23h41


Fuseau horaire GMT +2. Il est actuellement 00h10.


(C) 2006 Excel Downloads