Date d'enregistrement dans l'entête

Pegase

XLDnaute Nouveau
Bojour à tous,

Dans une feuille excel, dans l'entête, je souhaite mettre la date du dernier enregistrement du classeur.
Comment faire

D'avance merci

Pégase
 

Bricofire

XLDnaute Impliqué
Bonjour,
En Vba, tu peux voir du côté de l'insruction suivant, ce qui suit est extrait de l'aide VBA :)

DateLastAccessed, propriété


Description

Renvoie la date et l'heure de dernier accès au fichier ou au dossier spécifié. Lecture seule.

Syntaxe

object.DateLastAccessed

L'argument object représente toujours un objet File ou Folder.

Remarques

Le code suivant illustre l'emploi de la propriété DateLastAccessed avec un fichier :

Sub ShowFileAccessInfo(specfichier)
Dim fs, f, s
Set fs = CreateObject('Scripting.FileSystemObject')
Set f = fs.GetFile(specfichier)
s = UCase(specfichier) & vbCrLf
s = s & 'Créé le : ' & f.DateCreated & vbCrLf
s = s & 'Dernier accès le : ' & f.DateLastAccessed & vbCrLf
s = s & 'Dernière modification le : ' & f.DateLastModified
MsgBox s, 0, 'Infos d'accès au fichier'
End Sub

Important Le fonctionnement de cette méthode dépend du système d'exploitation sous-jacent. Les informations de date ne sont pas renvoyées si le système d'exploitation ne le gère pas.

cordialement,

Bfr
 

Pegase

XLDnaute Nouveau
Merci à vous 2 de vous intéresser à mon pb

JJ59 ce que tu me propose, je le connais mais ça donne la date d'impression par celle d'enregistrement

Bricofire : Je suis assez novice et je ne sais pas exploiter les infos que tu me donnes. De plus je ne cherche pas à afficher une MsgBox mais à placer l'info dans l'entête lors de l'impression.

Merci
Pégase
 
J

JJ59

Guest
Bonjour Bricofire, Re Pegase


Remarque judicieuse.
Presonnellement je me sers de cette astuce parce que je conserve un imprimé. De ce fait un même document avec 2 dates diffèrentes
implique obligatoirement une modification.
dans ce cas date d'impression = date d'enregistrement.

Bon aprés-midi
 

Bricofire

XLDnaute Impliqué
re tout le monde,

Pegase, le msg box, tu t'en fiches, l'important est le moyen d'extraire la donnée voulue, après c'est simple d'en faire ce que l'on veut, il suffit d'utiliser CenterHeader en vba par exemple pour la centrer en heut de page. Regardes d'ailleurs dans l'aide vba à CenterHeader et cliques sur codes de format ensuit, c'est riche !

Bon là je vais bosser et je voyage ce soir, si besoin je te ferai une solution mais pas avant ce WE ou lundi, si personne est venu d'ici là ;)

à bientôt

Bfr
 

Bricofire

XLDnaute Impliqué
Bonjour pegase, JJ59

Pegase,
Dans le fichier joint, tu trouveras j’espère ce que tu veux, j’ai changé de méthode, je n’arrivais pas à la fiabilité voulue avec l’autre… :)

Le code est placé dans la procédure BeforePrint du classeur , je t’ai laissé en commentaire une variante sur la procédure Open, mais moins intéressante car tu peux sauvegarder un classeur en cours de saisie, sans le refermer et le rouvrir, ce qui ne changerait du coup pas l’information, mais si tu considères ça comme des sauvegardes de secondes zones… on peut faire comme on veut.
Je t’ai mis en commentaires dans le code aussi comment placer l’info à l’endroit de l’en-tête ou de pied voulu.
J’ai laissé un Msgbox en commentaire pour pouvoir faire joujou, ainsi qu’une ligne qui te permettrait de mettre la date de création aussi si besoin.

Bon courage,

Bfr [file name=DernierEnregistBfr.zip size=6767]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/DernierEnregistBfr.zip[/file]

Message édité par: bricofire, à: 11/07/2005 17:52
 

Pièces jointes

  • DernierEnregistBfr.zip
    6.6 KB · Affichages: 37

Pegase

XLDnaute Nouveau
Merci beaucoup Bricofire, c'est ce que je cherchais.
Je l'ai même adapté avec la fonction BeforeSave à la place de BeforePrint ce qui correspond mieux à mon besoin.

En fait ce que je n'arrivais pas à faire c'est à transmettre une variable dans l'entête (comme tu le fait avec JSauv par exemple). Je pense que c'était un pb de déclaration de variable, il faut que je m'y repenche.

Une dernière question. Comment ne mettre que la date et non la date et l'heure. Je suppose que dans ActiveWorkbook.BuiltinDocumentProperties(12) il faut modifier l'argument 12 mais je n'ai pas trouvé les codes correspondants.
Je pensais mettre
JSauv = ActiveWorkbook.BuiltinDocumentProperties(12, 'dd/mm/yyyy')
mais ça ne fonctionne pas.

En tous cas merci encore de ta gentillesse et de t'être intéressé à mon pb.

Pégase
 

Bricofire

XLDnaute Impliqué
Bonne nuit le fil :)

Pegase, essayes comme ça :

JSauv = Format(ActiveWorkbook.BuiltinDocumentProperties(12), 'dd/mm/yyyy')

cordialement,

Bfr

PS, il ne faut pas toucher à 12 par contre, va voir l'aide VBA, tu verras pourquoi ;)

Message édité par: Bricofire, à: 12/07/2005 01:23
 

Bricofire

XLDnaute Impliqué
Re le fil, Pegase,

Ben normalement, si ça marche, je te join le fichier original modifié en conséquence, j'ai rajouté sur la feuil 1 une copie d'écran de l'aperçu avant impression chez moi.
Si tu n'as pas la même chose, ça pourrait venir de réglages de paramètres systèmes, sinon, je ne vois pas :)

bon courage,

Bfr [file name=DernierEnregistBfr_20050719123200.zip size=27645]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/DernierEnregistBfr_20050719123200.zip[/file]

Message édité par: bricofire, à: 19/07/2005 12:32
 

Pièces jointes

  • DernierEnregistBfr_20050719123200.zip
    27 KB · Affichages: 36

Pegase

XLDnaute Nouveau
Salut,
Ok ça fonctionne correctement y compris avec Workbook_BeforeSave
Je ne sais pas ce que j'ai fait l'autre jour, j'ai du me planter dans mes fichiers du style 'en modifier un et tester l'autre'.

Merci de ta patience
Bon Week End

Pégase
 

Discussions similaires

Réponses
4
Affichages
333

Statistiques des forums

Discussions
312 229
Messages
2 086 422
Membres
103 206
dernier inscrit
diambote