je voudrai mettre une date à jour dans une cellule, mais seulement si j'ai apporté des modifications ou rajouté des données .et bien entendu que j’ai enregistré.la feuille ou le classeur
Merci d’avance
inscrit (sauf erreur) la date de dernier enregistrement (voir propriétés du fichier) dans la cellule A1 de ta première feuille. Reste à voir où tu la placerais: dans le sub Workbook_Open() ou associée à un bouton ...
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(1).Range("A1").Value = ThisWorkbook.BuiltinDocumentProperties(12)
End Sub
Comme le SAV est assuré de main de maître ... Je n'ai plus qu'à aller me coucher !
... Quoique, une dernière question à JCGL: si tu préfères une procédure BeforeSave plutôt que Open (ou une autre), tu me diras pourquoi ? Dans le cas qui nous occupe, l'idée est précisément de n'enregistrer que si l'utilisateur le souhaite (en cas d'ajout ou de modifs) le BeforeSave laisse toujours ce choix à l'utilisateur ? Les 2 booléens passés en paramètres ont quoi comme valeur ?
Ceci dit, Morphée frappe déjà à la porte depuis quelque temps (et lamarmotte, s'il porte bien son nom, dort depuis longtemps aussi) alors la réponse peut attendre.
Si je copie le code dans VBA Poject
Je clique sûr retourner Excel, j'ai le message d'erreur
Erreur d'exécution "1004"
Erreur d'exécution par l'application ou par l'objet
Je ne sais pas si ce n'est pas un problème Excel 2007,
Car si je ferme le fichier, je l'ouvre et j'appelle Visual je clique dans la boîte déroulante je
Je fais apparaître beforesave, je réenregistre, j'ouvre le fichier il apparaît bien dans la cellule A1 la date et l'heure mais en nombre et pas en format date et heure
Il me suffit de formater la cellule
Cordialement
Peux-tu essayer avec ceci sous XL 97, je n'ai pas réinstallé XL97 mais je crois me souvenir qu'il faut utiliser la propriété .Item.
Code:
Option Explicit
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Sheets(1).Cells(1, 1) = Format(ThisWorkbook.BuiltinDocumentProperties.Item("Last Save Time"), "dddd dd/mm/yyyy hh:mm:ss;@")
End Sub
... Juste par acquit de conscience: le fichier a bien été enregistré une fois au moins, avant de lancer la macro ?? Je viens de tester ici et, si le fichier ne l'a pas encore été, la valeur de la Propriété n'est pas définie.
Bonjour
j'ai enregistré ton fichier mais la date reste bloqué au vendredi 12 juin 2009 9heures 37 minutes
j'ai installé le code au bon endroit dans un fichier que j'utillise depuis longtemps et voici le message d'erreur a l enregistrement
"en "piece jointe
j'ai enregistré ton fichier mais la date reste bloquée au vendredi 12 juin 2009 9heures 37 minutes
j'ai installé le code au bon endroit dans un fichier que j'utilise depuis longtemps et voici le message d'erreur a l enregistrement
Désolé, mais je n'ai pu tester le dernier fichier de JCGL en XL97 ... En XL2000 ça fonctionne sans problème. Bon je sais ça fait un peu "remuer le couteau dans la plaie" ... mais c'est tout ce que je peux dire !