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

Fichier: date modification

10 réponses
Avatar
mabouille
Bonjour le monde,
J'ai Excel 2003 sous Vista 32.

Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par ex
"Modifié le 12 avril 2004"

Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier Propriétés
j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai ouvert
le fichier.

Où est passée la vraie date de modification, celle donnée par explorer ?
Comment faire pour l'obtenir dans une macro ?

Pour le moment je n'ai trouvé que ce bout de code, mais il ne me retourne
que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
-----------------
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Z = ActiveWorkbook.FullName
On Error Resume Next
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Z)

Resultat = "Derniere modification : " & Valeur.DateLastModified &
Chr(10) & Chr(10)
--------------------------
Ce que je veux au final c'est avoir la dernière date où du travail a été
fait et enregistré pour ce fichier, afin de pouvoir en comparer différentes
versions.
Merci d'avance de vos conseils,
Mabouille

10 réponses

Avatar
JC Duce
Bonjour,

Tu peux essayer de passer par la fonction BuiltInProperties de ton document.

Pour connaitre toutes les propriétés disponibles, utilise le code suivant
dans un classeur vide :

------------------------------
Public Sub DisplayBuiltinDocumentProperties()
On Error Resume Next
rw = 1
Worksheets(1).Activate
For Each P In ActiveWorkbook.BuiltinDocumentProperties
Cells(rw, 1).Value = P.Name
Cells(rw, 2).Value = P.Value
rw = rw + 1
Next
End Sub
---------------------------------------

Dans le cas qui t'intéresse, la propriété Date de Dernière Sauvegarde
(+l'heure) est ActiveWorkbook.BuiltinDocumentProperties(12).Value

Bonne journée


"mabouille" wrote:

Bonjour le monde,
J'ai Excel 2003 sous Vista 32.

Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par ex
"Modifié le 12 avril 2004"

Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier Propriétés
j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai ouvert
le fichier.

Où est passée la vraie date de modification, celle donnée par explorer ?
Comment faire pour l'obtenir dans une macro ?

Pour le moment je n'ai trouvé que ce bout de code, mais il ne me retourne
que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
-----------------
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Z = ActiveWorkbook.FullName
On Error Resume Next
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Z)

Resultat = "Derniere modification : " & Valeur.DateLastModified &
Chr(10) & Chr(10)
--------------------------
Ce que je veux au final c'est avoir la dernière date où du travail a été
fait et enregistré pour ce fichier, afin de pouvoir en comparer différentes
versions.
Merci d'avance de vos conseils,
Mabouille

.

Avatar
Misange
bonjour
en complément, pense que si tu as dans ta feuille une fonction volatile
du genre = maintenant(), même si tu ne modifies rien d'autre dans ton
classeur, excel conisère qu'il a été modifié depuis sa dernière ouverture.

Misange migrateuse
http://www.excelabo.net


JC Duce a écrit :
Bonjour,

Tu peux essayer de passer par la fonction BuiltInProperties de ton document.

Pour connaitre toutes les propriétés disponibles, utilise le code suivant
dans un classeur vide :

------------------------------
Public Sub DisplayBuiltinDocumentProperties()
On Error Resume Next
rw = 1
Worksheets(1).Activate
For Each P In ActiveWorkbook.BuiltinDocumentProperties
Cells(rw, 1).Value = P.Name
Cells(rw, 2).Value = P.Value
rw = rw + 1
Next
End Sub
---------------------------------------

Dans le cas qui t'intéresse, la propriété Date de Dernière Sauvegarde
(+l'heure) est ActiveWorkbook.BuiltinDocumentProperties(12).Value

Bonne journée


"mabouille" wrote:

Bonjour le monde,
J'ai Excel 2003 sous Vista 32.

Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par ex
"Modifié le 12 avril 2004"

Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier Propriétés
j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai ouvert
le fichier.

Où est passée la vraie date de modification, celle donnée par explorer ?
Comment faire pour l'obtenir dans une macro ?

Pour le moment je n'ai trouvé que ce bout de code, mais il ne me retourne
que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
-----------------
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Z = ActiveWorkbook.FullName
On Error Resume Next
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Z)

Resultat = "Derniere modification : " & Valeur.DateLastModified &
Chr(10) & Chr(10)
--------------------------
Ce que je veux au final c'est avoir la dernière date où du travail a été
fait et enregistré pour ce fichier, afin de pouvoir en comparer différentes
versions.
Merci d'avance de vos conseils,
Mabouille

.

Avatar
michdenis
Bonjour,

En supposant que tu veux avoir comme critère de modification
de ton fichier existant, le fait qu'une cellule quelconque du classeur
passe en mode "ÉDITION", tu pourrais adopter cette façon de faire :

Si une cellule de ton classeur PASSE EN MODE ÉDITION- ceci ne
signifie pas pour autant que l'usager modifiera le contenu... La variable
Modification sera égale à True. Lors de la fermeture du classeur, si la
variable Modification est égale à True, un NOM sera ajouté
à la colllection "Names" avec la date de l'enregistrement si l'usager
décide de conserver les modifications.

Pour retrouver la date de la dernière modification, dans la procédure
de ton choix : Msgbox CDate([LastSave])

Dans le ThisWorkbook, copie ce qui suit :

'Déclaration de la variable dans le haut du module ThisWorkbook
Dim Modification As Boolean
'--------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim X As VbMsgBoxResult
If Modification = True Then
X = MsgBox("Voulez-vous sauvegarder les modifications " & _
"apportées au fichier " & ThisWorkbook.Name & "?", vbYesNoCancel)

Application.EnableEvents = False
Select Case X
Case Is = vbNo
Application.EnableEvents = True
ThisWorkbook.Close False
Case Is = vbYes
Names.Add "LastSave", Now(), False
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.EnableEvents = True
Case Is = vbCancel
Cancel = True
Application.EnableEvents = True
End Select
End If
End Sub
'--------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Modification = True
End Sub
'--------------------------------------





"mabouille" a écrit dans le message de groupe de
discussion :
Bonjour le monde,
J'ai Excel 2003 sous Vista 32.

Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par ex
"Modifié le 12 avril 2004"

Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier Propriétés
j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai ouvert
le fichier.

Où est passée la vraie date de modification, celle donnée par explorer ?
Comment faire pour l'obtenir dans une macro ?

Pour le moment je n'ai trouvé que ce bout de code, mais il ne me retourne
que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
-----------------
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Z = ActiveWorkbook.FullName
On Error Resume Next
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Z)

Resultat = "Derniere modification : " & Valeur.DateLastModified &
Chr(10) & Chr(10)
--------------------------
Ce que je veux au final c'est avoir la dernière date où du travail a été
fait et enregistré pour ce fichier, afin de pouvoir en comparer différentes
versions.
Merci d'avance de vos conseils,
Mabouille
Avatar
mabouille
Bonjour, et merci à vous trois.
Pour le moment je vais m'en tenir au code de JC Duce, qui marche dans mon
petit cas. Donc question primaire résolue.
Merci michdenis pour ton code, je vais le mettre dans mes nouveaux dossiers,
peux pas dans tous les anciens.
Au chapitre des commentaires, je pense qu'essayer d'éclaircir pourquoi Excel
donne des dates différentes parfois contradictoires (voir ci-dessous) doit
avoir une logique, mais je ne la comprends pas. Toutefois je n'y renonce
pas...pour un peu plus tard. Pour répondre à Misange je n'ai rien trouvé
dans mon classeur qui ressemble à une fonction volatile, même pas un petit
Date() sur l'unique feuille ou qui se mettrait à l'impression en bas de page
par ex.

Si vous avez le temps de voir ça, (mais je ne vous en voudrais pas du tout
si vous avez mieux à faire !) je viens de faire un petit test, voyez
ci-dessous:
Bilan: franchement le b...azar avec l'info "Modifié le", mais le plus
consistant est obtenu avec le Last save Time. Je vais donc modifier mes
macros en ce sens.
J'ai fait le Last Print date pour voir ce qui se passe un peu à côté de mon
sujet, mais là il me faudrait travailler avec une meilleure connaissance de
l'historique des fichiers que j'ai. A revoir si je peux.

En tout cas merci encore à tous du travail que vous faites pour répondre, et
de votre dévouement.
Cordialement
Mabouille

Voici le test:
'----------------------------------
Un fichier lambda pêché au hasard sur mon disque:
Code JC Duce, fichier ouvert:
Last print date: 20/04/2010 10:18 bizarre parce que je l'ai imprimé le
27/10/04 j'en suis sûr
Creation date: 13/10/2008 23:31 possible, c'est un vieux fichier qui a servi
de cadre de remplissage à celui ci.
Last save time: 28/04/2010 23.50 ça c'est vrai

Propriétés (fichier ouvert)
Créé le: 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le: 29/04/2010 09:49 c'est maintenant, mais je l'ai juste ouvert et
pas modifié
Accédé le : 29/04/2010 sans heure: répétition de la date au dessus

Propriétés (fichier fermé)
Créé le : 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le : "Aujourd'hui 29 avril 2010 il y a 12 minutes" (sic)
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic)
'------------------------------------
Autre fichier, reçu par messagerie et sauvegardé sur C:
Code JC Duce, fichier ouvert:
Last print date: 27/09/2007 11:34 bizarre parce que je l'ai imprimé il y a
seulement quelques jours. De plus je suis sûr que l'expéditeru l'a imprimé
plusieurs fois depuis 2007 !
Creation date: 26/02/2002 14:52 possible, c'est un vieux fichier qui a
servi de cadre de remplissage à celui ci.
Last save time: 25/04/2010 20:13 ça c'est vraisemblable

Propriétés (fichier ouvert)
Créé le: "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le: "jeudi 29 avril 2010 10:42:26" c'est maintenant, mais je l'ai
juste ouvert et pas modifié
Accédé le : "jeudi 29 avril 2010" sans heure: simple répétition de la date
au dessus

Propriétés (fichier fermé)
Créé le : "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le : "dimanche 25 avril 2010, 20:13:52" (sic) 2mn après le Créé le
d'au dessus.
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic) vrai


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

En supposant que tu veux avoir comme critère de modification
de ton fichier existant, le fait qu'une cellule quelconque du classeur
passe en mode "ÉDITION", tu pourrais adopter cette façon de faire :

Si une cellule de ton classeur PASSE EN MODE ÉDITION- ceci ne
signifie pas pour autant que l'usager modifiera le contenu... La variable
Modification sera égale à True. Lors de la fermeture du classeur, si la
variable Modification est égale à True, un NOM sera ajouté
à la colllection "Names" avec la date de l'enregistrement si l'usager
décide de conserver les modifications.

Pour retrouver la date de la dernière modification, dans la procédure
de ton choix : Msgbox CDate([LastSave])

Dans le ThisWorkbook, copie ce qui suit :

'Déclaration de la variable dans le haut du module ThisWorkbook
Dim Modification As Boolean
'--------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim X As VbMsgBoxResult
If Modification = True Then
X = MsgBox("Voulez-vous sauvegarder les modifications " & _
"apportées au fichier " & ThisWorkbook.Name & "?", vbYesNoCancel)

Application.EnableEvents = False
Select Case X
Case Is = vbNo
Application.EnableEvents = True
ThisWorkbook.Close False
Case Is = vbYes
Names.Add "LastSave", Now(), False
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.EnableEvents = True
Case Is = vbCancel
Cancel = True
Application.EnableEvents = True
End Select
End If
End Sub
'--------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Modification = True
End Sub
'--------------------------------------





"mabouille" a écrit dans le message de
groupe de
discussion :
Bonjour le monde,
J'ai Excel 2003 sous Vista 32.

Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par ex
"Modifié le 12 avril 2004"

Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier
Propriétés
j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai
ouvert
le fichier.

Où est passée la vraie date de modification, celle donnée par explorer ?
Comment faire pour l'obtenir dans une macro ?

Pour le moment je n'ai trouvé que ce bout de code, mais il ne me retourne
que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
-----------------
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Z = ActiveWorkbook.FullName
On Error Resume Next
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Z)

Resultat = "Derniere modification : " & Valeur.DateLastModified &
Chr(10) & Chr(10)
--------------------------
Ce que je veux au final c'est avoir la dernière date où du travail a été
fait et enregistré pour ce fichier, afin de pouvoir en comparer
différentes
versions.
Merci d'avance de vos conseils,
Mabouille

Avatar
Jex
On 29 avr, 14:23, "mabouille" wrote:
Bonjour, et merci à vous trois.
Pour le moment je vais m'en tenir au code de JC Duce, qui marche dans mon
petit cas. Donc question primaire résolue.
Merci michdenis pour ton code, je vais le mettre dans mes nouveaux dossie rs,
peux pas dans tous les anciens.
Au chapitre des commentaires, je pense qu'essayer d'éclaircir pourquoi Excel
donne des dates différentes parfois contradictoires (voir ci-dessous) d oit
avoir une logique, mais je ne la comprends pas. Toutefois je n'y renonce
pas...pour un peu plus tard. Pour répondre à Misange je n'ai rien tro uvé
dans mon classeur qui ressemble à une fonction volatile, même pas un petit
Date() sur l'unique feuille ou qui se mettrait à l'impression en bas de page
par ex.

Si vous avez le temps de voir ça, (mais je ne vous en voudrais pas du t out
si vous avez mieux à faire !) je viens de faire un petit test, voyez
ci-dessous:
Bilan: franchement le b...azar avec l'info "Modifié le", mais le plus
consistant est obtenu avec le Last save Time. Je vais donc modifier mes
macros en ce sens.
J'ai fait le Last Print date pour voir ce qui se passe un peu à côt é de mon
sujet, mais là il me faudrait travailler avec une meilleure connaissanc e de
l'historique des fichiers que j'ai. A revoir si je peux.

En tout cas merci encore à tous du travail que vous faites pour répon dre, et
de votre dévouement.
Cordialement
Mabouille

Voici le test:
'----------------------------------
Un fichier lambda pêché au hasard sur mon disque:
Code JC Duce, fichier ouvert:
Last print date: 20/04/2010 10:18 bizarre parce que je l'ai imprimé le
27/10/04 j'en suis sûr
Creation date: 13/10/2008 23:31 possible, c'est un vieux fichier qui a se rvi
de cadre de remplissage à celui ci.
Last save time: 28/04/2010 23.50 ça c'est vrai

Propriétés (fichier ouvert)
Créé le: 27/04/2010 16:10:44  contradiction avec Creation date au d essus
Modifié le: 29/04/2010 09:49 c'est maintenant, mais je l'ai juste ouver t et
pas modifié
Accédé le : 29/04/2010 sans heure: répétition de la date au dessu s

Propriétés (fichier fermé)
Créé le : 27/04/2010 16:10:44 contradiction avec Creation date au des sus
Modifié le : "Aujourd'hui 29 avril 2010 il y a 12 minutes" (sic)
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic)
'------------------------------------
Autre fichier, reçu par messagerie et sauvegardé sur C:
Code JC Duce, fichier ouvert:
Last print date: 27/09/2007 11:34 bizarre parce que je l'ai imprimé il y a
seulement quelques jours. De plus je suis sûr que l'expéditeru l'a im primé
plusieurs fois depuis 2007 !
Creation date: 26/02/2002 14:52  possible, c'est un vieux fichier qui a
servi de cadre de remplissage à celui ci.
Last save time: 25/04/2010 20:13 ça c'est vraisemblable

Propriétés (fichier ouvert)
Créé le: "dimanche 25 avril 2010, 20:13:50"  contradiction avec Cre ation
date au dessus, mais ça colle avec Last Save Time
Modifié le: "jeudi 29 avril 2010 10:42:26" c'est maintenant, mais je l' ai
juste ouvert et pas modifié
Accédé le : "jeudi 29 avril 2010" sans heure: simple répétition d e la date
au dessus

Propriétés (fichier fermé)
Créé le : "dimanche 25 avril 2010, 20:13:50" contradiction avec Creat ion
date au dessus, mais ça colle avec Last Save Time
Modifié le : "dimanche 25 avril 2010, 20:13:52" (sic) 2mn après le Cr éé le
d'au dessus.
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic) vrai

"michdenis" a écrit dans le message denews:535B

> Bonjour,

> En supposant que tu veux avoir comme critère de modification
> de ton fichier existant, le fait qu'une cellule quelconque du classeur
> passe en mode "ÉDITION", tu pourrais adopter cette façon de faire :

> Si une cellule de ton classeur PASSE EN MODE ÉDITION- ceci ne
> signifie pas pour autant que l'usager modifiera le contenu... La variab le
> Modification sera égale à True. Lors de la fermeture du classeur, s i la
> variable Modification est égale à True, un NOM sera ajouté
> à la colllection "Names" avec la date de l'enregistrement si l'usager
> décide de conserver les modifications.

> Pour retrouver la date de la dernière modification, dans la procédu re
> de ton choix :  Msgbox CDate([LastSave])

> Dans le ThisWorkbook, copie ce qui suit :

> 'Déclaration de la variable dans le haut du module ThisWorkbook
> Dim Modification As Boolean
> '--------------------------------------
> Private Sub Workbook_BeforeClose(Cancel As Boolean)

> Dim X As VbMsgBoxResult
> If Modification = True Then
>    X = MsgBox("Voulez-vous sauvegarder les modifications " & _
>        "apportées au fichier " & ThisWorkbook.Name & "?", vbY esNoCancel)

>    Application.EnableEvents = False
>    Select Case X
>        Case Is = vbNo
>            Application.EnableEvents = True
>            ThisWorkbook.Close False
>        Case Is = vbYes
>            Names.Add "LastSave", Now(), False
>            ThisWorkbook.Save
>            ThisWorkbook.Saved = True
>            Application.EnableEvents = True
>        Case Is = vbCancel
>            Cancel = True
>            Application.EnableEvents = True
>    End Select
> End If
> End Sub
> '--------------------------------------
> Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
> Range)
> Modification = True
> End Sub
> '--------------------------------------

> "mabouille" a écrit dans le message de
> groupe de
> discussion :
> Bonjour le monde,
> J'ai Excel 2003 sous Vista 32.

> Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
> ligne dans Windows explorer j'ai une fenêtre propriété, qui affic he par ex
> "Modifié le 12 avril 2004"

> Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier
> Propriétés
> j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai
> ouvert
> le fichier.

> Où est passée la vraie date de modification, celle donnée par exp lorer ?
> Comment faire pour l'obtenir dans une macro ?

> Pour le moment je n'ai trouvé que ce bout de code, mais il ne me reto urne
> que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
> -----------------
>    Dim Cible As Scripting.FileSystemObject
>    Dim Valeur As Scripting.File
>    Dim Resultat As String
>    Z = ActiveWorkbook.FullName
>    On Error Resume Next
>    Set Cible = CreateObject("Scripting.fileSystemObject")
>    Set Valeur = Cible.GetFile(Z)

>    Resultat =    "Derniere modification : " & Valeur.DateLast Modified &
> Chr(10) & Chr(10)
> --------------------------
> Ce que je veux au final c'est avoir la dernière date où du travail a été
> fait et enregistré pour ce fichier, afin de pouvoir en comparer
> différentes
> versions.
> Merci d'avance de vos conseils,
> Mabouille



bonjour à tous,

Sur un fichier ouvert par Excel, la seule méthode qui donne le bon
résultat est celle indiquée par JC Duce :
ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value

Quand on ouvre un classeur Excel depuis un explorateur, on peut voir
que la date de modification est mise à jour par la date/heure en
cours. Si on ferme le classeur sans avoir fait d'enregistrement, la
date est de nouveau mise à jour avec sa valeur avant ouverture du
classeur.
Si, malicieusement, on plante Excel alors que le classeur est ouvert,
la date de modification ne revient pas à sa valeur avant ouverture.
Ceci se produit avec tout nouveau classeur fraîchement créé par click
droit dans un répertoire.

DateLastModified sur un Scripting.File reflète cette date qui est
effectivement modifiée, mais qui ne correspond plus à une date de
modification mais à celle de l'ouverture du classeur.

Pour le "Last Print date" il faut vérifier qu'il se met à jour même s i
on ne sauvegarde pas le classeur avant de le fermer.
Logiquement, si on ne sauvegarde pas le classeur après une impression,
la date ne devrait pas être modifiée.

Bonne continuation à Mabouille :)
J
Avatar
michdenis
Les fonctions volatiles dont parle Misange sont :

Aujourdhui(), Maintenant(), Cellule(), Indirect()
Zones(), Alea(), Decaler(), Index(), Colonnes(),
Lignes()

Si le classeur contient une de ces fonctions, ces dernières
sont automatiquement évaluées dès l'ouverture du
classeur sans que l'usager puisse intervenir.

Pour empêcher la mise à jour, l'application Excel doit être
en mode de calcul manuel avant l'ouverture du classeur.

La résultante, c'est que ceci a un effet direct sur ce que
retourne cette ligne de code. Si le classeur contient une
fonction volatile système d'Excel, et si l'application Excel
n'est pas en mode de calcul manuel à l'ouverture du classeur,
la ligne de code retournera la date et l'heure de l'ouverture du
classeur...à proprement parlé, cela ne signifie pas pour autant que
l'usager sauvegardera (enregistrera) le classeur à la fermeture.

MsgBox ActiveWorkbook.BuiltinDocumentProperties("Last save time").Value

Si ceci satisfait tes besoins, il n'a rien autre à ajouter.






"mabouille" a écrit dans le message de groupe de
discussion : #
Bonjour, et merci à vous trois.
Pour le moment je vais m'en tenir au code de JC Duce, qui marche dans mon
petit cas. Donc question primaire résolue.
Merci michdenis pour ton code, je vais le mettre dans mes nouveaux dossiers,
peux pas dans tous les anciens.
Au chapitre des commentaires, je pense qu'essayer d'éclaircir pourquoi Excel
donne des dates différentes parfois contradictoires (voir ci-dessous) doit
avoir une logique, mais je ne la comprends pas. Toutefois je n'y renonce
pas...pour un peu plus tard. Pour répondre à Misange je n'ai rien trouvé
dans mon classeur qui ressemble à une fonction volatile, même pas un petit
Date() sur l'unique feuille ou qui se mettrait à l'impression en bas de page
par ex.

Si vous avez le temps de voir ça, (mais je ne vous en voudrais pas du tout
si vous avez mieux à faire !) je viens de faire un petit test, voyez
ci-dessous:
Bilan: franchement le b...azar avec l'info "Modifié le", mais le plus
consistant est obtenu avec le Last save Time. Je vais donc modifier mes
macros en ce sens.
J'ai fait le Last Print date pour voir ce qui se passe un peu à côté de mon
sujet, mais là il me faudrait travailler avec une meilleure connaissance de
l'historique des fichiers que j'ai. A revoir si je peux.

En tout cas merci encore à tous du travail que vous faites pour répondre, et
de votre dévouement.
Cordialement
Mabouille

Voici le test:
'----------------------------------
Un fichier lambda pêché au hasard sur mon disque:
Code JC Duce, fichier ouvert:
Last print date: 20/04/2010 10:18 bizarre parce que je l'ai imprimé le
27/10/04 j'en suis sûr
Creation date: 13/10/2008 23:31 possible, c'est un vieux fichier qui a servi
de cadre de remplissage à celui ci.
Last save time: 28/04/2010 23.50 ça c'est vrai

Propriétés (fichier ouvert)
Créé le: 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le: 29/04/2010 09:49 c'est maintenant, mais je l'ai juste ouvert et
pas modifié
Accédé le : 29/04/2010 sans heure: répétition de la date au dessus

Propriétés (fichier fermé)
Créé le : 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le : "Aujourd'hui 29 avril 2010 il y a 12 minutes" (sic)
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic)
'------------------------------------
Autre fichier, reçu par messagerie et sauvegardé sur C:
Code JC Duce, fichier ouvert:
Last print date: 27/09/2007 11:34 bizarre parce que je l'ai imprimé il y a
seulement quelques jours. De plus je suis sûr que l'expéditeru l'a imprimé
plusieurs fois depuis 2007 !
Creation date: 26/02/2002 14:52 possible, c'est un vieux fichier qui a
servi de cadre de remplissage à celui ci.
Last save time: 25/04/2010 20:13 ça c'est vraisemblable

Propriétés (fichier ouvert)
Créé le: "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le: "jeudi 29 avril 2010 10:42:26" c'est maintenant, mais je l'ai
juste ouvert et pas modifié
Accédé le : "jeudi 29 avril 2010" sans heure: simple répétition de la date
au dessus

Propriétés (fichier fermé)
Créé le : "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le : "dimanche 25 avril 2010, 20:13:52" (sic) 2mn après le Créé le
d'au dessus.
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic) vrai


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

En supposant que tu veux avoir comme critère de modification
de ton fichier existant, le fait qu'une cellule quelconque du classeur
passe en mode "ÉDITION", tu pourrais adopter cette façon de faire :

Si une cellule de ton classeur PASSE EN MODE ÉDITION- ceci ne
signifie pas pour autant que l'usager modifiera le contenu... La variable
Modification sera égale à True. Lors de la fermeture du classeur, si la
variable Modification est égale à True, un NOM sera ajouté
à la colllection "Names" avec la date de l'enregistrement si l'usager
décide de conserver les modifications.

Pour retrouver la date de la dernière modification, dans la procédure
de ton choix : Msgbox CDate([LastSave])

Dans le ThisWorkbook, copie ce qui suit :

'Déclaration de la variable dans le haut du module ThisWorkbook
Dim Modification As Boolean
'--------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim X As VbMsgBoxResult
If Modification = True Then
X = MsgBox("Voulez-vous sauvegarder les modifications " & _
"apportées au fichier " & ThisWorkbook.Name & "?", vbYesNoCancel)

Application.EnableEvents = False
Select Case X
Case Is = vbNo
Application.EnableEvents = True
ThisWorkbook.Close False
Case Is = vbYes
Names.Add "LastSave", Now(), False
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.EnableEvents = True
Case Is = vbCancel
Cancel = True
Application.EnableEvents = True
End Select
End If
End Sub
'--------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Modification = True
End Sub
'--------------------------------------





"mabouille" a écrit dans le message de
groupe de
discussion :
Bonjour le monde,
J'ai Excel 2003 sous Vista 32.

Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par ex
"Modifié le 12 avril 2004"

Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier
Propriétés
j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai
ouvert
le fichier.

Où est passée la vraie date de modification, celle donnée par explorer ?
Comment faire pour l'obtenir dans une macro ?

Pour le moment je n'ai trouvé que ce bout de code, mais il ne me retourne
que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
-----------------
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Z = ActiveWorkbook.FullName
On Error Resume Next
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Z)

Resultat = "Derniere modification : " & Valeur.DateLastModified &
Chr(10) & Chr(10)
--------------------------
Ce que je veux au final c'est avoir la dernière date où du travail a été
fait et enregistré pour ce fichier, afin de pouvoir en comparer
différentes
versions.
Merci d'avance de vos conseils,
Mabouille

Avatar
Caetera
"michdenis" a écrit dans le message de news:

Les fonctions volatiles dont parle Misange sont :
Aujourdhui(), Maintenant(), Cellule(), Indirect()
Zones(), Alea(), Decaler(), Index(), Colonnes(),
Lignes()



*****************

Pour mémoire...

Colonnes - Index - Lignes - Zones
NE sont PAS des fonctions volatiles

Etc
Avatar
michdenis
L'information publiée est tirée du volume de
John Walkenbach, Formules et Fonctions Excel 2000,
ISBN : 2-84427-124-3, page 100 dans l'encadré
intitulé : Fonctions volatiles

Si on ne peut plus faire confiance à ces auteurs prolifiques
pour ce type d'information, dans quel monde vivons-nous ?
;-)))





"Caetera" <EtiennePloufCahé@wanadoo.fr> a écrit dans le message de groupe de discussion :

"michdenis" a écrit dans le message de news:

Les fonctions volatiles dont parle Misange sont :
Aujourdhui(), Maintenant(), Cellule(), Indirect()
Zones(), Alea(), Decaler(), Index(), Colonnes(),
Lignes()



*****************

Pour mémoire...

Colonnes - Index - Lignes - Zones
NE sont PAS des fonctions volatiles

Etc
Avatar
mabouille
Bonjour,
pour répondre à la question de Jex: j'ai testé, et en effet la Last print
date ne change pas si on modifie le fichier puis qu'on l'imprime et qu'on le
ferme sans le sauvegarder. C'est la date d'impression de la dernière version
sauvegardée qui est conservée, et la modification est zappée.
Cordialement
Mabouille

"Jex" a écrit dans le message de
news:
On 29 avr, 14:23, "mabouille" wrote:
Bonjour, et merci à vous trois.
Pour le moment je vais m'en tenir au code de JC Duce, qui marche dans mon
petit cas. Donc question primaire résolue.
Merci michdenis pour ton code, je vais le mettre dans mes nouveaux
dossiers,
peux pas dans tous les anciens.
Au chapitre des commentaires, je pense qu'essayer d'éclaircir pourquoi
Excel
donne des dates différentes parfois contradictoires (voir ci-dessous) doit
avoir une logique, mais je ne la comprends pas. Toutefois je n'y renonce
pas...pour un peu plus tard. Pour répondre à Misange je n'ai rien trouvé
dans mon classeur qui ressemble à une fonction volatile, même pas un petit
Date() sur l'unique feuille ou qui se mettrait à l'impression en bas de
page
par ex.

Si vous avez le temps de voir ça, (mais je ne vous en voudrais pas du tout
si vous avez mieux à faire !) je viens de faire un petit test, voyez
ci-dessous:
Bilan: franchement le b...azar avec l'info "Modifié le", mais le plus
consistant est obtenu avec le Last save Time. Je vais donc modifier mes
macros en ce sens.
J'ai fait le Last Print date pour voir ce qui se passe un peu à côté de
mon
sujet, mais là il me faudrait travailler avec une meilleure connaissance
de
l'historique des fichiers que j'ai. A revoir si je peux.

En tout cas merci encore à tous du travail que vous faites pour répondre,
et
de votre dévouement.
Cordialement
Mabouille

Voici le test:
'----------------------------------
Un fichier lambda pêché au hasard sur mon disque:
Code JC Duce, fichier ouvert:
Last print date: 20/04/2010 10:18 bizarre parce que je l'ai imprimé le
27/10/04 j'en suis sûr
Creation date: 13/10/2008 23:31 possible, c'est un vieux fichier qui a
servi
de cadre de remplissage à celui ci.
Last save time: 28/04/2010 23.50 ça c'est vrai

Propriétés (fichier ouvert)
Créé le: 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le: 29/04/2010 09:49 c'est maintenant, mais je l'ai juste ouvert
et
pas modifié
Accédé le : 29/04/2010 sans heure: répétition de la date au dessus

Propriétés (fichier fermé)
Créé le : 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le : "Aujourd'hui 29 avril 2010 il y a 12 minutes" (sic)
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic)
'------------------------------------
Autre fichier, reçu par messagerie et sauvegardé sur C:
Code JC Duce, fichier ouvert:
Last print date: 27/09/2007 11:34 bizarre parce que je l'ai imprimé il y a
seulement quelques jours. De plus je suis sûr que l'expéditeru l'a imprimé
plusieurs fois depuis 2007 !
Creation date: 26/02/2002 14:52 possible, c'est un vieux fichier qui a
servi de cadre de remplissage à celui ci.
Last save time: 25/04/2010 20:13 ça c'est vraisemblable

Propriétés (fichier ouvert)
Créé le: "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le: "jeudi 29 avril 2010 10:42:26" c'est maintenant, mais je l'ai
juste ouvert et pas modifié
Accédé le : "jeudi 29 avril 2010" sans heure: simple répétition de la date
au dessus

Propriétés (fichier fermé)
Créé le : "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le : "dimanche 25 avril 2010, 20:13:52" (sic) 2mn après le Créé le
d'au dessus.
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic) vrai

"michdenis" a écrit dans le message
denews:

> Bonjour,

> En supposant que tu veux avoir comme critère de modification
> de ton fichier existant, le fait qu'une cellule quelconque du classeur
> passe en mode "ÉDITION", tu pourrais adopter cette façon de faire :

> Si une cellule de ton classeur PASSE EN MODE ÉDITION- ceci ne
> signifie pas pour autant que l'usager modifiera le contenu... La
> variable
> Modification sera égale à True. Lors de la fermeture du classeur, si la
> variable Modification est égale à True, un NOM sera ajouté
> à la colllection "Names" avec la date de l'enregistrement si l'usager
> décide de conserver les modifications.

> Pour retrouver la date de la dernière modification, dans la procédure
> de ton choix : Msgbox CDate([LastSave])

> Dans le ThisWorkbook, copie ce qui suit :

> 'Déclaration de la variable dans le haut du module ThisWorkbook
> Dim Modification As Boolean
> '--------------------------------------
> Private Sub Workbook_BeforeClose(Cancel As Boolean)

> Dim X As VbMsgBoxResult
> If Modification = True Then
> X = MsgBox("Voulez-vous sauvegarder les modifications " & _
> "apportées au fichier " & ThisWorkbook.Name & "?", vbYesNoCancel)

> Application.EnableEvents = False
> Select Case X
> Case Is = vbNo
> Application.EnableEvents = True
> ThisWorkbook.Close False
> Case Is = vbYes
> Names.Add "LastSave", Now(), False
> ThisWorkbook.Save
> ThisWorkbook.Saved = True
> Application.EnableEvents = True
> Case Is = vbCancel
> Cancel = True
> Application.EnableEvents = True
> End Select
> End If
> End Sub
> '--------------------------------------
> Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
> Range)
> Modification = True
> End Sub
> '--------------------------------------

> "mabouille" a écrit dans le message de
> groupe de
> discussion :
> Bonjour le monde,
> J'ai Excel 2003 sous Vista 32.

> Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
> ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par
> ex
> "Modifié le 12 avril 2004"

> Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier
> Propriétés
> j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai
> ouvert
> le fichier.

> Où est passée la vraie date de modification, celle donnée par explorer ?
> Comment faire pour l'obtenir dans une macro ?

> Pour le moment je n'ai trouvé que ce bout de code, mais il ne me
> retourne
> que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
> -----------------
> Dim Cible As Scripting.FileSystemObject
> Dim Valeur As Scripting.File
> Dim Resultat As String
> Z = ActiveWorkbook.FullName
> On Error Resume Next
> Set Cible = CreateObject("Scripting.fileSystemObject")
> Set Valeur = Cible.GetFile(Z)

> Resultat = "Derniere modification : " & Valeur.DateLastModified &
> Chr(10) & Chr(10)
> --------------------------
> Ce que je veux au final c'est avoir la dernière date où du travail a été
> fait et enregistré pour ce fichier, afin de pouvoir en comparer
> différentes
> versions.
> Merci d'avance de vos conseils,
> Mabouille



bonjour à tous,

Sur un fichier ouvert par Excel, la seule méthode qui donne le bon
résultat est celle indiquée par JC Duce :
ActiveWorkbook.BuiltinDocumentProperties("Last Save Time").Value

Quand on ouvre un classeur Excel depuis un explorateur, on peut voir
que la date de modification est mise à jour par la date/heure en
cours. Si on ferme le classeur sans avoir fait d'enregistrement, la
date est de nouveau mise à jour avec sa valeur avant ouverture du
classeur.
Si, malicieusement, on plante Excel alors que le classeur est ouvert,
la date de modification ne revient pas à sa valeur avant ouverture.
Ceci se produit avec tout nouveau classeur fraîchement créé par click
droit dans un répertoire.

DateLastModified sur un Scripting.File reflète cette date qui est
effectivement modifiée, mais qui ne correspond plus à une date de
modification mais à celle de l'ouverture du classeur.

Pour le "Last Print date" il faut vérifier qu'il se met à jour même si
on ne sauvegarde pas le classeur avant de le fermer.
Logiquement, si on ne sauvegarde pas le classeur après une impression,
la date ne devrait pas être modifiée.

Bonne continuation à Mabouille :)
J
Avatar
mabouille
Ben si, il y a un petit merci de plus à ajouter !
En fait mes classeurs sont tous en mode de calcul automatique. A part ça je
n'ai aucune des fonctions volatiles citées, mais j'ai plein de formules si
"= SI (xxxx)" dans ce fichier et plein de formules de calcul type
"=SOMME(xx)" ou "â+D4" partout, alors ça doit recalculer à tout va dès
l'ouverture!!
Cordialement,
Mabouille

"michdenis" a écrit dans le message de
news:
Les fonctions volatiles dont parle Misange sont :

Aujourdhui(), Maintenant(), Cellule(), Indirect()
Zones(), Alea(), Decaler(), Index(), Colonnes(),
Lignes()

Si le classeur contient une de ces fonctions, ces dernières
sont automatiquement évaluées dès l'ouverture du
classeur sans que l'usager puisse intervenir.

Pour empêcher la mise à jour, l'application Excel doit être
en mode de calcul manuel avant l'ouverture du classeur.

La résultante, c'est que ceci a un effet direct sur ce que
retourne cette ligne de code. Si le classeur contient une
fonction volatile système d'Excel, et si l'application Excel
n'est pas en mode de calcul manuel à l'ouverture du classeur,
la ligne de code retournera la date et l'heure de l'ouverture du
classeur...à proprement parlé, cela ne signifie pas pour autant que
l'usager sauvegardera (enregistrera) le classeur à la fermeture.

MsgBox ActiveWorkbook.BuiltinDocumentProperties("Last save time").Value

Si ceci satisfait tes besoins, il n'a rien autre à ajouter.






"mabouille" a écrit dans le message de
groupe de
discussion : #
Bonjour, et merci à vous trois.
Pour le moment je vais m'en tenir au code de JC Duce, qui marche dans mon
petit cas. Donc question primaire résolue.
Merci michdenis pour ton code, je vais le mettre dans mes nouveaux
dossiers,
peux pas dans tous les anciens.
Au chapitre des commentaires, je pense qu'essayer d'éclaircir pourquoi
Excel
donne des dates différentes parfois contradictoires (voir ci-dessous) doit
avoir une logique, mais je ne la comprends pas. Toutefois je n'y renonce
pas...pour un peu plus tard. Pour répondre à Misange je n'ai rien trouvé
dans mon classeur qui ressemble à une fonction volatile, même pas un petit
Date() sur l'unique feuille ou qui se mettrait à l'impression en bas de
page
par ex.

Si vous avez le temps de voir ça, (mais je ne vous en voudrais pas du tout
si vous avez mieux à faire !) je viens de faire un petit test, voyez
ci-dessous:
Bilan: franchement le b...azar avec l'info "Modifié le", mais le plus
consistant est obtenu avec le Last save Time. Je vais donc modifier mes
macros en ce sens.
J'ai fait le Last Print date pour voir ce qui se passe un peu à côté de
mon
sujet, mais là il me faudrait travailler avec une meilleure connaissance
de
l'historique des fichiers que j'ai. A revoir si je peux.

En tout cas merci encore à tous du travail que vous faites pour répondre,
et
de votre dévouement.
Cordialement
Mabouille

Voici le test:
'----------------------------------
Un fichier lambda pêché au hasard sur mon disque:
Code JC Duce, fichier ouvert:
Last print date: 20/04/2010 10:18 bizarre parce que je l'ai imprimé le
27/10/04 j'en suis sûr
Creation date: 13/10/2008 23:31 possible, c'est un vieux fichier qui a
servi
de cadre de remplissage à celui ci.
Last save time: 28/04/2010 23.50 ça c'est vrai

Propriétés (fichier ouvert)
Créé le: 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le: 29/04/2010 09:49 c'est maintenant, mais je l'ai juste ouvert
et
pas modifié
Accédé le : 29/04/2010 sans heure: répétition de la date au dessus

Propriétés (fichier fermé)
Créé le : 27/04/2010 16:10:44 contradiction avec Creation date au dessus
Modifié le : "Aujourd'hui 29 avril 2010 il y a 12 minutes" (sic)
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic)
'------------------------------------
Autre fichier, reçu par messagerie et sauvegardé sur C:
Code JC Duce, fichier ouvert:
Last print date: 27/09/2007 11:34 bizarre parce que je l'ai imprimé il y a
seulement quelques jours. De plus je suis sûr que l'expéditeru l'a imprimé
plusieurs fois depuis 2007 !
Creation date: 26/02/2002 14:52 possible, c'est un vieux fichier qui a
servi de cadre de remplissage à celui ci.
Last save time: 25/04/2010 20:13 ça c'est vraisemblable

Propriétés (fichier ouvert)
Créé le: "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le: "jeudi 29 avril 2010 10:42:26" c'est maintenant, mais je l'ai
juste ouvert et pas modifié
Accédé le : "jeudi 29 avril 2010" sans heure: simple répétition de la date
au dessus

Propriétés (fichier fermé)
Créé le : "dimanche 25 avril 2010, 20:13:50" contradiction avec Creation
date au dessus, mais ça colle avec Last Save Time
Modifié le : "dimanche 25 avril 2010, 20:13:52" (sic) 2mn après le Créé le
d'au dessus.
Dernier accès le : "Aujourd'hui 29 avril 2010" (sic) vrai


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

En supposant que tu veux avoir comme critère de modification
de ton fichier existant, le fait qu'une cellule quelconque du classeur
passe en mode "ÉDITION", tu pourrais adopter cette façon de faire :

Si une cellule de ton classeur PASSE EN MODE ÉDITION- ceci ne
signifie pas pour autant que l'usager modifiera le contenu... La variable
Modification sera égale à True. Lors de la fermeture du classeur, si la
variable Modification est égale à True, un NOM sera ajouté
à la colllection "Names" avec la date de l'enregistrement si l'usager
décide de conserver les modifications.

Pour retrouver la date de la dernière modification, dans la procédure
de ton choix : Msgbox CDate([LastSave])

Dans le ThisWorkbook, copie ce qui suit :

'Déclaration de la variable dans le haut du module ThisWorkbook
Dim Modification As Boolean
'--------------------------------------
Private Sub Workbook_BeforeClose(Cancel As Boolean)

Dim X As VbMsgBoxResult
If Modification = True Then
X = MsgBox("Voulez-vous sauvegarder les modifications " & _
"apportées au fichier " & ThisWorkbook.Name & "?", vbYesNoCancel)

Application.EnableEvents = False
Select Case X
Case Is = vbNo
Application.EnableEvents = True
ThisWorkbook.Close False
Case Is = vbYes
Names.Add "LastSave", Now(), False
ThisWorkbook.Save
ThisWorkbook.Saved = True
Application.EnableEvents = True
Case Is = vbCancel
Cancel = True
Application.EnableEvents = True
End Select
End If
End Sub
'--------------------------------------
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As
Range)
Modification = True
End Sub
'--------------------------------------





"mabouille" a écrit dans le message de
groupe de
discussion :
Bonjour le monde,
J'ai Excel 2003 sous Vista 32.

Date de modification d'un fichier toto.xls fermé : par clic droit sur sa
ligne dans Windows explorer j'ai une fenêtre propriété, qui affiche par
ex
"Modifié le 12 avril 2004"

Si j'ouvre ce fichier sans rien y toucher et que je fais Fichier
Propriétés
j'ai alors: "Modifié le" avec la date d'aujourd'hui à l'heure où j'ai
ouvert
le fichier.

Où est passée la vraie date de modification, celle donnée par explorer ?
Comment faire pour l'obtenir dans une macro ?

Pour le moment je n'ai trouvé que ce bout de code, mais il ne me retourne
que la date d'aujourd'hui à l'heure d'ouverture de mon vieux fichier:
-----------------
Dim Cible As Scripting.FileSystemObject
Dim Valeur As Scripting.File
Dim Resultat As String
Z = ActiveWorkbook.FullName
On Error Resume Next
Set Cible = CreateObject("Scripting.fileSystemObject")
Set Valeur = Cible.GetFile(Z)

Resultat = "Derniere modification : " & Valeur.DateLastModified &
Chr(10) & Chr(10)
--------------------------
Ce que je veux au final c'est avoir la dernière date où du travail a été
fait et enregistré pour ce fichier, afin de pouvoir en comparer
différentes
versions.
Merci d'avance de vos conseils,
Mabouille