OVH Cloud OVH Cloud

insertion date de modification d'u document

12 réponses
Avatar
vins111282
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans un pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je consulte
le document et non pas la date à laquelle le document a été modifié pour la
dernière fois.
Merci d'avance et bonne journée.

10 réponses

1 2
Avatar
Daniel
Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans le message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans un pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je consulte
le document et non pas la date à laquelle le document a été modifié pour
la
dernière fois.
Merci d'avance et bonne journée.


Avatar
papou
Bonjour
Avec une macro à adapter :
With Worksheets("Nom Feuille").PageSetup
.RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With

Cordialement
Pascal

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

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans un pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je consulte
le document et non pas la date à laquelle le document a été modifié pour
la
dernière fois.
Merci d'avance et bonne journée.


Avatar
vins111282
Bonjour et merci,
mias je vais abuser de votre bonté.
Je suis tres nul dans Excel, où dois je enregistrer ce code?
Où mettre la fonction pour le pied de page?
Comment se lance-t-elle?
Excusez moi mais je ne suis vraiment pas doué!!!
Merci d'avance


Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans le message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans un pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je consulte
le document et non pas la date à laquelle le document a été modifié pour
la
dernière fois.
Merci d'avance et bonne journée.







Avatar
Daniel
Utilise la solution de Papou, plus simple.
ALT+F11, la fenêtre Visual Basic s'ouvre. Clique sur le nom de ton classeur,
à gauche de la fenêtre, puis, Insertion / Module. Copie alors le code dans
la partie droite.
Reviens sur ton classeur, puis, Outils / Macro / Macros, clique sur le nom
de la macro et sur "exécuter". C'est tout.
Daniel
"vins111282" a écrit dans le message
de news:
Bonjour et merci,
mias je vais abuser de votre bonté.
Je suis tres nul dans Excel, où dois je enregistrer ce code?
Où mettre la fonction pour le pied de page?
Comment se lance-t-elle?
Excusez moi mais je ne suis vraiment pas doué!!!
Merci d'avance


Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans un
pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je
consulte
le document et non pas la date à laquelle le document a été modifié
pour
la
dernière fois.
Merci d'avance et bonne journée.









Avatar
vins111282
Merci beaucoup

J'ai bien compris mais il me met une "erreur de compilation : Instruction
incorrecte à l'extérieur d'une procédure".
Voici le code que j'ai mis dans le module1 de mon classeur :

With Worksheets("Feuil1").PageSetup
.RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With

Pouvez vous me dire ce qui cloche dans tout cela (mis à part moi)?
Merci d'avance et bonne journée




Utilise la solution de Papou, plus simple.
ALT+F11, la fenêtre Visual Basic s'ouvre. Clique sur le nom de ton classeur,
à gauche de la fenêtre, puis, Insertion / Module. Copie alors le code dans
la partie droite.
Reviens sur ton classeur, puis, Outils / Macro / Macros, clique sur le nom
de la macro et sur "exécuter". C'est tout.
Daniel
"vins111282" a écrit dans le message
de news:
Bonjour et merci,
mias je vais abuser de votre bonté.
Je suis tres nul dans Excel, où dois je enregistrer ce code?
Où mettre la fonction pour le pied de page?
Comment se lance-t-elle?
Excusez moi mais je ne suis vraiment pas doué!!!
Merci d'avance


Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans un
pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je
consulte
le document et non pas la date à laquelle le document a été modifié
pour
la
dernière fois.
Merci d'avance et bonne journée.














Avatar
papou
Bonjour
Les lignes que tu as positionnées dans le module doivent appartenir à une
procédure.
Donc il te faut nommer une procédure avec par exemple ceci :

Sub DateModifPdP()
With Worksheets("Feuil1").PageSetup
.RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With
End Sub

La macro s'appellera donc DateModifPdp

Cordialement
Pascal

"vins111282" a écrit dans le message
de news:
Merci beaucoup

J'ai bien compris mais il me met une "erreur de compilation : Instruction
incorrecte à l'extérieur d'une procédure".
Voici le code que j'ai mis dans le module1 de mon classeur :

With Worksheets("Feuil1").PageSetup
.RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With

Pouvez vous me dire ce qui cloche dans tout cela (mis à part moi)?
Merci d'avance et bonne journée




Utilise la solution de Papou, plus simple.
ALT+F11, la fenêtre Visual Basic s'ouvre. Clique sur le nom de ton
classeur,
à gauche de la fenêtre, puis, Insertion / Module. Copie alors le code
dans
la partie droite.
Reviens sur ton classeur, puis, Outils / Macro / Macros, clique sur le
nom
de la macro et sur "exécuter". C'est tout.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour et merci,
mias je vais abuser de votre bonté.
Je suis tres nul dans Excel, où dois je enregistrer ce code?
Où mettre la fonction pour le pied de page?
Comment se lance-t-elle?
Excusez moi mais je ne suis vraiment pas doué!!!
Merci d'avance


Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans
un
pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je
consulte
le document et non pas la date à laquelle le document a été modifié
pour
la
dernière fois.
Merci d'avance et bonne journée.
















Avatar
vins111282
Merci Papou

J'ai bien compris le systeme des fonctions. J'ai mis du code aussi sur
l'ouverture de mon classeur pour que la macro se lance automatiquement.
Par contre, la date indiquée dans mon pied de page n'est pas bonne.
En effet, quand j'ouvre le document sans le modifier et que je l'imprime, il
me met la date du jour quand même.
Savez vous pourquoi??
Merci encore



Bonjour
Les lignes que tu as positionnées dans le module doivent appartenir à une
procédure.
Donc il te faut nommer une procédure avec par exemple ceci :

Sub DateModifPdP()
With Worksheets("Feuil1").PageSetup
..RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With
End Sub

La macro s'appellera donc DateModifPdp

Cordialement
Pascal

"vins111282" a écrit dans le message
de news:
Merci beaucoup

J'ai bien compris mais il me met une "erreur de compilation : Instruction
incorrecte à l'extérieur d'une procédure".
Voici le code que j'ai mis dans le module1 de mon classeur :

With Worksheets("Feuil1").PageSetup
.RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With

Pouvez vous me dire ce qui cloche dans tout cela (mis à part moi)?
Merci d'avance et bonne journée




Utilise la solution de Papou, plus simple.
ALT+F11, la fenêtre Visual Basic s'ouvre. Clique sur le nom de ton
classeur,
à gauche de la fenêtre, puis, Insertion / Module. Copie alors le code
dans
la partie droite.
Reviens sur ton classeur, puis, Outils / Macro / Macros, clique sur le
nom
de la macro et sur "exécuter". C'est tout.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour et merci,
mias je vais abuser de votre bonté.
Je suis tres nul dans Excel, où dois je enregistrer ce code?
Où mettre la fonction pour le pied de page?
Comment se lance-t-elle?
Excusez moi mais je ne suis vraiment pas doué!!!
Merci d'avance


Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement dans
un
pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je
consulte
le document et non pas la date à laquelle le document a été modifié
pour
la
dernière fois.
Merci d'avance et bonne journée.





















Avatar
papou
Bon après test (j'ai changé ma date système) je confirme que j'ai le même
comportement.
Il semble donc que la méthode avec le FileSystem Object ne retourne la bonne
information que lorsque le fichier (en tout cas pour Excel) n'est pas ouvert
!
Donc je recommande plutôt que tu utilises cette méthode qui renvoie la date
et l'heure de dernière sauvegarde :

With Worksheets("Saisie").PageSetup
.RightFooter = ThisWorkbook.BuiltinDocumentProperties("Last save time")
End With

Cordialement
Pascal

"papou" <cestpasbon@çanonplus44.fr> a écrit dans le message de news:
%23nkTD1b%
Re
N'y a t-il pas des fonctions volatiles dans ton classeur ?
Sinon il faut préciser que dans le code exemple que j'ai fourni, la date
de modification concerne le classeur qui contient la macro.
Si le classeur est différent, il faut changer Thisworkbook par
ActiveWorkbook.

Cordialement
Pascal

"vins111282" a écrit dans le
message de news:
Merci Papou

J'ai bien compris le systeme des fonctions. J'ai mis du code aussi sur
l'ouverture de mon classeur pour que la macro se lance automatiquement.
Par contre, la date indiquée dans mon pied de page n'est pas bonne.
En effet, quand j'ouvre le document sans le modifier et que je l'imprime,
il
me met la date du jour quand même.
Savez vous pourquoi??
Merci encore



Bonjour
Les lignes que tu as positionnées dans le module doivent appartenir à
une
procédure.
Donc il te faut nommer une procédure avec par exemple ceci :

Sub DateModifPdP()
With Worksheets("Feuil1").PageSetup
..RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With
End Sub

La macro s'appellera donc DateModifPdp

Cordialement
Pascal

"vins111282" a écrit dans le
message
de news:
Merci beaucoup

J'ai bien compris mais il me met une "erreur de compilation :
Instruction
incorrecte à l'extérieur d'une procédure".
Voici le code que j'ai mis dans le module1 de mon classeur :

With Worksheets("Feuil1").PageSetup
.RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With

Pouvez vous me dire ce qui cloche dans tout cela (mis à part moi)?
Merci d'avance et bonne journée




Utilise la solution de Papou, plus simple.
ALT+F11, la fenêtre Visual Basic s'ouvre. Clique sur le nom de ton
classeur,
à gauche de la fenêtre, puis, Insertion / Module. Copie alors le code
dans
la partie droite.
Reviens sur ton classeur, puis, Outils / Macro / Macros, clique sur
le
nom
de la macro et sur "exécuter". C'est tout.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour et merci,
mias je vais abuser de votre bonté.
Je suis tres nul dans Excel, où dois je enregistrer ce code?
Où mettre la fonction pour le pied de page?
Comment se lance-t-elle?
Excusez moi mais je ne suis vraiment pas doué!!!
Merci d'avance


Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans
le
message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement
dans
un
pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où
je
consulte
le document et non pas la date à laquelle le document a été
modifié
pour
la
dernière fois.
Merci d'avance et bonne journée.



























Avatar
vins111282
Re
non il n'y a pas de fonction volatiles
mon classeur est vide, j'ai juste remplit une cellule.
Je me rends compte que lorsque je lance ma macro "DateModifPdP", le classeur
est modifié car il me prend la date et l'haure actuelle, et en plus lorsque
je ferme le classeur il me demande si je veux enregistrer.

Voici la problématique de départ qui m'a été posé:
plusieurs utilisateurs modifient un classeur qui se trouve sur une
ressource partagée du réseau. Ils veulent avoir l'heure de la derniere
modification apportée au classeur lorsqu'ils impriment ce document.C'est
pourquoi je me suis tourné vers une solution comme cela. Peut etre avez vous
une meilleure soluton?
MErci d'avance





Re
N'y a t-il pas des fonctions volatiles dans ton classeur ?
Sinon il faut préciser que dans le code exemple que j'ai fourni, la date de
modification concerne le classeur qui contient la macro.
Si le classeur est différent, il faut changer Thisworkbook par
ActiveWorkbook.

Cordialement
Pascal

"vins111282" a écrit dans le message
de news:
Merci Papou

J'ai bien compris le systeme des fonctions. J'ai mis du code aussi sur
l'ouverture de mon classeur pour que la macro se lance automatiquement.
Par contre, la date indiquée dans mon pied de page n'est pas bonne.
En effet, quand j'ouvre le document sans le modifier et que je l'imprime,
il
me met la date du jour quand même.
Savez vous pourquoi??
Merci encore



Bonjour
Les lignes que tu as positionnées dans le module doivent appartenir à une
procédure.
Donc il te faut nommer une procédure avec par exemple ceci :

Sub DateModifPdP()
With Worksheets("Feuil1").PageSetup
..RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With
End Sub

La macro s'appellera donc DateModifPdp

Cordialement
Pascal

"vins111282" a écrit dans le
message
de news:
Merci beaucoup

J'ai bien compris mais il me met une "erreur de compilation :
Instruction
incorrecte à l'extérieur d'une procédure".
Voici le code que j'ai mis dans le module1 de mon classeur :

With Worksheets("Feuil1").PageSetup
.RightFooter = CreateObject("Scripting.FileSystemObject").Getfile _
(ThisWorkbook.FullName).DateLastModified
End With

Pouvez vous me dire ce qui cloche dans tout cela (mis à part moi)?
Merci d'avance et bonne journée




Utilise la solution de Papou, plus simple.
ALT+F11, la fenêtre Visual Basic s'ouvre. Clique sur le nom de ton
classeur,
à gauche de la fenêtre, puis, Insertion / Module. Copie alors le code
dans
la partie droite.
Reviens sur ton classeur, puis, Outils / Macro / Macros, clique sur le
nom
de la macro et sur "exécuter". C'est tout.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour et merci,
mias je vais abuser de votre bonté.
Je suis tres nul dans Excel, où dois je enregistrer ce code?
Où mettre la fonction pour le pied de page?
Comment se lance-t-elle?
Excusez moi mais je ne suis vraiment pas doué!!!
Merci d'avance


Bonjour.
Je remercie l'auteur, dont j'ai oublié le nom, de la fonction :

Function DateDerModif(NomFich As String, Dossier As String)
Dim FSO, Direc, FilesInDirec, F
Dim Row As Integer

Set FSO = CreateObject("Scripting.FileSystemObject")
Set Direc = FSO.GetFolder("E:donneesdanielmpfe")
Set FilesInDirec = Direc.Files
For Each F In FilesInDirec
If F.Name = "061017.xls" Then
DateDerModif = F.DateLastModified
End If
Next F
End Function

Tu récupères le pied de page :

Sub test2()
ActiveSheet.PageSetup.LeftFooter = _
DateDerModif(ActiveWorkbook.Name, ActiveWorkbook.Path)
End Sub

Cordialement.
Daniel
"vins111282" a écrit dans le
message
de news:
Bonjour,

je travaille sous Excel 2003.
Je voudrais savoir comment faire pour insérer automatiquement
dans
un
pied
de page la date de modification d'un document.
Si j'utilise la fonction today(), il me met la date du jour où je
consulte
le document et non pas la date à laquelle le document a été
modifié
pour
la
dernière fois.
Merci d'avance et bonne journée.




























Avatar
Modeste
Bonsour® vins111282 avec ferveur ;o))) vous nous disiez :

Par contre, la date indiquée dans mon pied de page n'est pas bonne.
En effet, quand j'ouvre le document sans le modifier et que je l'imprime,
il
me met la date du jour quand même.
Savez vous pourquoi??


il suffit que le document contienne une fonction dite "volatile" telle que
maintenant(), aujourdhui(), alea()
pour que le document soit considéré modifié, même si cela n'est pas suivi d'une
sauvegarde.

on peut utiliser les proprietes internes du document
pour connaitre la date de création, la date de de la précédente
sauvegarde(modification et/ou enregistrement), la date de la précédente
impression

une exemple d'utilisation de ces propriétés :

Sub zaza()
On Error Resume Next
With ActiveWorkbook
datecreated = .BuiltinDocumentProperties(11).Name & Chr(10) & _
.BuiltinDocumentProperties(11).Value & Chr(10)
datesaved = .BuiltinDocumentProperties(12).Name & Chr(10) & _
.BuiltinDocumentProperties(12).Value & Chr(10)
dateprinted = .BuiltinDocumentProperties(10).Name & Chr(10) & _
.BuiltinDocumentProperties(10).Value & Chr(10)
End With

reponse = MsgBox("dates mémorisées " & Chr(10) & datecreated & datesaved &
dateprinted, vbInformation, "Modeste")
End Sub


--
@+
;o)))
--
--
@+
;o)))

1 2