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.

2 réponses

1 2
Avatar
vins111282
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


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






Avatar
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.























1 2