Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Date sauvegarde fichiers

4 réponses
Avatar
mabouille
Bonjour le monde,
Avec Excel 2003 , Vista 32
Comment peut on comparer la date de dernier enregistrement du fichier actif
avec les dates de dernier enregistrement de 2 copies du même fichier
enregistrées sous le même nom à deux endroits différents (et connus) du même
disque ?
J'ai bien ça pour le fichier actif : MaDateFichierActif =
ActiveWorkbook.BuiltinDocumentProperties(12)
Mais je ne peux pas ouvrir les autres fichiers (qui ont le même nom) pour
faire la même chose, ou alors il faut ouvrir et fermer l'un après l'autre
tous ces fichiers et c'est lourdingue!
J'ai essayé : MaDateFichierToto = Workbooks(lechemin le fichier)
.BuiltinDocumentProperties(12) mais ça ne marche pas.
J'ai essayé DateModif = FileDateTime(Adresse & "\" & Fichiercible) en
l'utilisant à partir d'un fichier actif différent de ceux en cause, mais je
me méfie des dates de modification car elle n'ont pas l'air d'être en
rapport avec les dates d'enregistrement et ces dernières me semblent plus
solides pour identifier la chronlogie des versions (fil récent à ce sujet)
Merci de votre aide et de votre indulgence, je ne suis pas expert et il est
minuit passé à Paris!
Cordialement
Mabouille

4 réponses

Avatar
michdenis
Bonjour,

Tu devrais utiliser une même façon de faire pour chaque fichier :

'------------------------------------
Sub test()

Dim objFSO As Object
Dim File1 As String
Dim File2 As String
Dim File3 As String

Dim Date1 As Date
Dim Date2 As Date
Dim Date3 As Date

'Chemin & nom du fichier
File1 = "c:Classeur1.xls"
File2 = "c:Classeur2.xls"
File3 = "c:Classeur3.xls"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set file = objFSO.Getfile(File1)
Date1 = file.DateLastAccessed
Set file = objFSO.Getfile(File2)
Date2 = file.DateLastAccessed
Set file = objFSO.Getfile(File3)
Date3 = file.DateLastAccessed

'Et tu compares ce que tu cherches d'après
'3 dates obtenues

Set objFSO = Nothing: Set file = Nothing
End Sub
'------------------------------------



"mabouille" a écrit dans le message de groupe de
discussion :
Bonjour le monde,
Avec Excel 2003 , Vista 32
Comment peut on comparer la date de dernier enregistrement du fichier actif
avec les dates de dernier enregistrement de 2 copies du même fichier
enregistrées sous le même nom à deux endroits différents (et connus) du même
disque ?
J'ai bien ça pour le fichier actif : MaDateFichierActif ActiveWorkbook.BuiltinDocumentProperties(12)
Mais je ne peux pas ouvrir les autres fichiers (qui ont le même nom) pour
faire la même chose, ou alors il faut ouvrir et fermer l'un après l'autre
tous ces fichiers et c'est lourdingue!
J'ai essayé : MaDateFichierToto = Workbooks(lechemin le fichier)
.BuiltinDocumentProperties(12) mais ça ne marche pas.
J'ai essayé DateModif = FileDateTime(Adresse & "" & Fichiercible) en
l'utilisant à partir d'un fichier actif différent de ceux en cause, mais je
me méfie des dates de modification car elle n'ont pas l'air d'être en
rapport avec les dates d'enregistrement et ces dernières me semblent plus
solides pour identifier la chronlogie des versions (fil récent à ce sujet)
Merci de votre aide et de votre indulgence, je ne suis pas expert et il est
minuit passé à Paris!
Cordialement
Mabouille
Avatar
mabouille
Bonjour,
Ca marche, merci michdenis. Toutefois si, comme il me semble, la date
DateLastAccessed donne seulement la date où le fichier a été simplement
ouvert mais pas forcément modifié, j'ai remplacé DateLastAccessed par
DateLastModified, ça marche aussi. Mais y a t'il une instruction qui donne
la date de dernier enregistrement (=sauvegarde) au lieu de DateLastModified
(qui me paraît être la fameuse date de dernière modification dont je me
méfie) ? Je ne l'ai pas trouvée sur le net.
Cordialement
Mabouille


"michdenis" a écrit dans le message de
news:%
Bonjour,

Tu devrais utiliser une même façon de faire pour chaque fichier :

'------------------------------------
Sub test()

Dim objFSO As Object
Dim File1 As String
Dim File2 As String
Dim File3 As String

Dim Date1 As Date
Dim Date2 As Date
Dim Date3 As Date

'Chemin & nom du fichier
File1 = "c:Classeur1.xls"
File2 = "c:Classeur2.xls"
File3 = "c:Classeur3.xls"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set file = objFSO.Getfile(File1)
Date1 = file.DateLastAccessed
Set file = objFSO.Getfile(File2)
Date2 = file.DateLastAccessed
Set file = objFSO.Getfile(File3)
Date3 = file.DateLastAccessed

'Et tu compares ce que tu cherches d'après
'3 dates obtenues

Set objFSO = Nothing: Set file = Nothing
End Sub
'------------------------------------



"mabouille" a écrit dans le message de
groupe de
discussion :
Bonjour le monde,
Avec Excel 2003 , Vista 32
Comment peut on comparer la date de dernier enregistrement du fichier
actif
avec les dates de dernier enregistrement de 2 copies du même fichier
enregistrées sous le même nom à deux endroits différents (et connus) du
même
disque ?
J'ai bien ça pour le fichier actif : MaDateFichierActif > ActiveWorkbook.BuiltinDocumentProperties(12)
Mais je ne peux pas ouvrir les autres fichiers (qui ont le même nom) pour
faire la même chose, ou alors il faut ouvrir et fermer l'un après l'autre
tous ces fichiers et c'est lourdingue!
J'ai essayé : MaDateFichierToto = Workbooks(lechemin le fichier)
.BuiltinDocumentProperties(12) mais ça ne marche pas.
J'ai essayé DateModif = FileDateTime(Adresse & "" & Fichiercible) en
l'utilisant à partir d'un fichier actif différent de ceux en cause, mais
je
me méfie des dates de modification car elle n'ont pas l'air d'être en
rapport avec les dates d'enregistrement et ces dernières me semblent plus
solides pour identifier la chronlogie des versions (fil récent à ce sujet)
Merci de votre aide et de votre indulgence, je ne suis pas expert et il
est
minuit passé à Paris!
Cordialement
Mabouille

Avatar
Jex
On 7 mai, 09:35, "mabouille" wrote:
Bonjour,
Ca marche, merci michdenis. Toutefois si, comme il me semble, la date
DateLastAccessed donne seulement la date où le fichier a été simple ment
ouvert mais pas forcément modifié, j'ai remplacé DateLastAccessed p ar
DateLastModified, ça marche aussi. Mais y a t'il une instruction qui do nne
la date de dernier enregistrement (=sauvegarde) au lieu de DateLastModi fied
(qui me paraît être la fameuse date de dernière modification dont j e me
méfie) ? Je ne l'ai pas trouvée sur le net.
Cordialement
Mabouille

"michdenis" a écrit dans le message denews:%23w

> Bonjour,

> Tu devrais utiliser une même façon de faire pour chaque fichier :

> '------------------------------------
> Sub test()

> Dim objFSO As Object
> Dim File1 As String
> Dim File2 As String
> Dim File3 As String

> Dim Date1 As Date
> Dim Date2 As Date
> Dim Date3 As Date

> 'Chemin & nom du fichier
> File1 = "c:Classeur1.xls"
> File2 = "c:Classeur2.xls"
> File3 = "c:Classeur3.xls"

> Set objFSO = CreateObject("Scripting.FileSystemObject")
> Set file = objFSO.Getfile(File1)
> Date1 = file.DateLastAccessed
> Set file = objFSO.Getfile(File2)
> Date2 = file.DateLastAccessed
> Set file = objFSO.Getfile(File3)
> Date3 = file.DateLastAccessed

> 'Et tu compares ce que tu cherches d'après
> '3 dates obtenues

> Set objFSO = Nothing: Set file = Nothing
> End Sub
> '------------------------------------

> "mabouille" a écrit dans le message de
> groupe de
> discussion :
> Bonjour le monde,
> Avec Excel 2003 , Vista 32
> Comment peut on comparer la date de dernier enregistrement du fichier
> actif
> avec les dates de dernier enregistrement de 2 copies du même fichier
> enregistrées sous le même nom à deux endroits différents (et co nnus) du
> même
> disque ?
> J'ai bien ça pour le fichier actif :  MaDateFichierActif =
> ActiveWorkbook.BuiltinDocumentProperties(12)
> Mais je ne peux pas ouvrir les autres fichiers (qui ont le même nom) pour
> faire la même chose, ou alors il faut ouvrir et fermer l'un après l 'autre
> tous ces fichiers et c'est lourdingue!
> J'ai essayé : MaDateFichierToto = Workbooks(lechemin le fichier)
> .BuiltinDocumentProperties(12) mais ça ne marche pas.
> J'ai essayé DateModif = FileDateTime(Adresse & "" & Fichiercible) en
> l'utilisant à partir d'un fichier actif différent de ceux en cause, mais
> je
> me méfie des dates de modification car elle n'ont pas l'air d'être en
> rapport avec les dates d'enregistrement et ces dernières me semblent plus
> solides pour identifier la chronlogie des versions (fil récent à ce sujet)
> Merci de votre aide et de votre indulgence, je ne suis pas expert et il
> est
> minuit passé à Paris!
> Cordialement
> Mabouille



Bonjour,

effectivement, un fil récent a déjà abordé ce sujet.
Pour résumer :
- le classeur est ouvert par Excel -->
ActiveWorkbook.BuiltinDocumentProperties(12) , car Excel change la
date de modification lorsqu'il ouvre un classeur (!!)
- la classeur n'est pas ouvert par Excel --> méthode avec FSO (comme
indiqué par michdenis) file.DateLastModified

La date d'enregistrement est exactement celle de dernière
modification, il n'y a que trois dates accessibles par FSO :
DateCreated, DateLastAccessed et DateLastModified qui sont celles de
windows.

J.
Avatar
mabouille
Merci Jex,
Merci de ta réponse nette et précise!
Donc je ne cherche pas plus loin, et je vais gérer les deux cas: le classeur
à comparer est ouvert ( là j'utilise
ActiveWorkbook.BuiltinDocumentProperties(12) ou bien le classeur à comparer
est fermé et j'utilise DateLastModified.
En fait c'est ce que j'aurai le plus souvent = chercher si le classeur actif
est ou pas la dernière version, donc je vais voir si ça marche vraiment en
comparant entre elles la date donnée par
ActiveWorkbook.BuiltinDocumentProperties(12) pour le classeur actif et les
dates données par DateLastModified pour les différentes versions se trouvant
ailleurs (et non actives)
Cordialement
Mabouille

"Jex" a écrit dans le message de
news:
On 7 mai, 09:35, "mabouille" wrote:
Bonjour,
Ca marche, merci michdenis. Toutefois si, comme il me semble, la date
DateLastAccessed donne seulement la date où le fichier a été simplement
ouvert mais pas forcément modifié, j'ai remplacé DateLastAccessed par
DateLastModified, ça marche aussi. Mais y a t'il une instruction qui donne
la date de dernier enregistrement (=sauvegarde) au lieu de
DateLastModified
(qui me paraît être la fameuse date de dernière modification dont je me
méfie) ? Je ne l'ai pas trouvée sur le net.
Cordialement
Mabouille

"michdenis" a écrit dans le message
denews:%

> Bonjour,

> Tu devrais utiliser une même façon de faire pour chaque fichier :

> '------------------------------------
> Sub test()

> Dim objFSO As Object
> Dim File1 As String
> Dim File2 As String
> Dim File3 As String

> Dim Date1 As Date
> Dim Date2 As Date
> Dim Date3 As Date

> 'Chemin & nom du fichier
> File1 = "c:Classeur1.xls"
> File2 = "c:Classeur2.xls"
> File3 = "c:Classeur3.xls"

> Set objFSO = CreateObject("Scripting.FileSystemObject")
> Set file = objFSO.Getfile(File1)
> Date1 = file.DateLastAccessed
> Set file = objFSO.Getfile(File2)
> Date2 = file.DateLastAccessed
> Set file = objFSO.Getfile(File3)
> Date3 = file.DateLastAccessed

> 'Et tu compares ce que tu cherches d'après
> '3 dates obtenues

> Set objFSO = Nothing: Set file = Nothing
> End Sub
> '------------------------------------

> "mabouille" a écrit dans le message de
> groupe de
> discussion :
> Bonjour le monde,
> Avec Excel 2003 , Vista 32
> Comment peut on comparer la date de dernier enregistrement du fichier
> actif
> avec les dates de dernier enregistrement de 2 copies du même fichier
> enregistrées sous le même nom à deux endroits différents (et connus) du
> même
> disque ?
> J'ai bien ça pour le fichier actif : MaDateFichierActif > > ActiveWorkbook.BuiltinDocumentProperties(12)
> Mais je ne peux pas ouvrir les autres fichiers (qui ont le même nom)
> pour
> faire la même chose, ou alors il faut ouvrir et fermer l'un après
> l'autre
> tous ces fichiers et c'est lourdingue!
> J'ai essayé : MaDateFichierToto = Workbooks(lechemin le fichier)
> .BuiltinDocumentProperties(12) mais ça ne marche pas.
> J'ai essayé DateModif = FileDateTime(Adresse & "" & Fichiercible) en
> l'utilisant à partir d'un fichier actif différent de ceux en cause, mais
> je
> me méfie des dates de modification car elle n'ont pas l'air d'être en
> rapport avec les dates d'enregistrement et ces dernières me semblent
> plus
> solides pour identifier la chronlogie des versions (fil récent à ce
> sujet)
> Merci de votre aide et de votre indulgence, je ne suis pas expert et il
> est
> minuit passé à Paris!
> Cordialement
> Mabouille



Bonjour,

effectivement, un fil récent a déjà abordé ce sujet.
Pour résumer :
- le classeur est ouvert par Excel -->
ActiveWorkbook.BuiltinDocumentProperties(12) , car Excel change la
date de modification lorsqu'il ouvre un classeur (!!)
- la classeur n'est pas ouvert par Excel --> méthode avec FSO (comme
indiqué par michdenis) file.DateLastModified

La date d'enregistrement est exactement celle de dernière
modification, il n'y a que trois dates accessibles par FSO :
DateCreated, DateLastAccessed et DateLastModified qui sont celles de
windows.

J.