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.
Grâce à vous j'ai réussi a faire ce que je voulais. Voici mon code final qui marche parfaitement:
Module: Sub DateModifPdP() With ActiveWorkbook Datemodif = .BuiltinDocumentProperties(12).Name & Chr(10) & _ .BuiltinDocumentProperties(12).Value & Chr(10) End With ActiveSheet.PageSetup.CenterFooter = datemodif End Sub
Workbook : Private Sub Workbook_BeforePrint(Cancel As Boolean) DateModifPdP End Sub
Encore un grand merci à toute cette communauté. Merci et bon week end
Vincent
"Modeste" wrote:
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)))
Merci à Tous,
Grâce à vous j'ai réussi a faire ce que je voulais.
Voici mon code final qui marche parfaitement:
Module:
Sub DateModifPdP()
With ActiveWorkbook
Datemodif = .BuiltinDocumentProperties(12).Name & Chr(10) & _
.BuiltinDocumentProperties(12).Value & Chr(10)
End With
ActiveSheet.PageSetup.CenterFooter = datemodif
End Sub
Workbook :
Private Sub Workbook_BeforePrint(Cancel As Boolean)
DateModifPdP
End Sub
Encore un grand merci à toute cette communauté.
Merci et bon week end
Vincent
"Modeste" wrote:
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
Grâce à vous j'ai réussi a faire ce que je voulais. Voici mon code final qui marche parfaitement:
Module: Sub DateModifPdP() With ActiveWorkbook Datemodif = .BuiltinDocumentProperties(12).Name & Chr(10) & _ .BuiltinDocumentProperties(12).Value & Chr(10) End With ActiveSheet.PageSetup.CenterFooter = datemodif End Sub
Workbook : Private Sub Workbook_BeforePrint(Cancel As Boolean) DateModifPdP End Sub
Encore un grand merci à toute cette communauté. Merci et bon week end
Vincent
"Modeste" wrote:
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)))
papou
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.
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" <vins111282@discussions.microsoft.com> a écrit dans le message
de news: D6C078A7-37AE-4098-B590-2B81CBAFC475@microsoft.com...
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" <vins111282@discussions.microsoft.com> a écrit dans le
message
de news: 8316941C-535D-43D1-9D5C-4CB88C84C4BE@microsoft.com...
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" <vins111282@discussions.microsoft.com> a écrit dans le
message
de news: 2A2FEE08-EA5C-4321-9060-08E918006729@microsoft.com...
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" <vins111282@discussions.microsoft.com> a écrit dans le
message
de news: 705B15E4-4A96-473F-A054-1FDD267E0050@microsoft.com...
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.
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.