10. august 2005 - 09:35Der er
15 kommentarer og 2 løsninger
Angivning af sti og dato
Kan man få Excel til at angive stien for det sted filen ligger? Kan man herudover få Excel til at angive datoen, når arket gemmes? Jeg har prøvet med now(), men den angiver jo datoen hver gang dokumentet bare åbnes.
Så vidt jeg ved, har Microsoft omhyggeligt undgået at lave denne funktion (som det måske også fremgår af tidligere svar på Eksperten). Om de skulle have taget sig sammen og lavet det i de nyere versioner (jeg sidder stadig med en 97'er!) ved jeg ikke.
Jeg har brugt nedenstående formel til at angive tidspunktet, når filen gemmes. Jeg synes dog ikke dette sker!!! Jeg kan nok bare ikke rigtigt gennemskue formlen.
Public Function lastsaved() Application.Volatile lastsaved = ActiveWorkbook.BuiltinDocumentProperties.Item(12) End Function
Sjovt, den virker da fint hos mig! Hvad gør du med den? Det er jo en privat funktion og ikke en makro, du laver dér. Så du skal altså lave en formel i en celle, der hedder =lastsaved().
Tidspunktet angives også fint, når jeg kalder funktionen, men når jeg så prøver at gemme filen lidt tid efter, så ændres tidspunktet ikke. Er det ikke det, som funktionen skal kunne. Det er i hvert fald det, som jeg har brug for.
Jerg tror at problemet er, at du laver det som en funktion. Funktionen udføres kun, når regnearket genberegnes. Denne genregning burde ske, hvis du fx bare taster noget i regnearket. Men i øvrigt er Item 12 ikke last save time i min version af Excel. Prøv med
Public Function lastsaved() Application.Volatile lastsaved = ActiveWorkbook.BuiltinDocumentProperties.Item("last save time") End Function
Tidspunktet opdateres kun, når der foretages ændringer i arket. Dette er dog ikke hensigtsmæssigt, da man måske beslutter sig for ikke at gemme de ændringer, man har lavet. Tidspunktet skal altså kun opdateres ved gemning. Er der en anden metode?
Tidpunktet burde kun blive opdateret, når du gemmer. Men ændringen bliver så kun vist, når du laver en ændring i arket. Jeg ville dog nok selv vølge at bruge BeforeSave hændelsen til at indsætte en værdi i en bestemt celle:
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Sheets(1).Range("a1").Value = Now() End Sub
Her indsættes dato og tid i A1 i Ark1, men det kan du selv ændre. Koden skal ligge i ThisWorkbook.
Det skal i øvrigt ikke kun være for Save As, men hver gang der saves. Kan man ikke bruge ActiveWorkbook.Save, også bruge now() formlen til at indsætte tidspunktet. Bare et naivt forslag:-) Jeg ved ikke, hvordan det skal stilles op. Jeg får desuden en out of range error. Mit ark hedder Project_Overview og er angivet som sheet6 i VBA.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.