Avatar billede jroi Nybegynder
11. april 2003 - 13:30 Der er 18 kommentarer

Formel - sist lagret

Jeg trenger å vise tidspunkt i en celle for når regnearket ble sist lagret....

Jeg tror det er =inf(ett eller annet) eller?

jroi
Avatar billede stewen Praktikant
11. april 2003 - 14:07 #1
Hvad med at bruge =nu() (på dansk) - den viser også hvornår der sidst er gemt! Der er dog det minus at den ændrer sig når man arbejder i regnearket!
Avatar billede jroi Nybegynder
11. april 2003 - 14:10 #2
Ja, jeg tenkte også på den, men om dokumentet er lagret for to dager siden så går jeg opp "NU" tiden når jeg åpner.... Jeg må få opp feltet sist lagret i "properties" boksen....

jroi:-)
Avatar billede janvogt Praktikant
11. april 2003 - 15:09 #3
Prøv denne makro:

Sub LastSaved()
    Worksheets("Sheet3").Range("F1").Value = ThisWorkbook.BuiltinDocumentProperties("Last Save Time").Value
End Sub
Avatar billede janvogt Praktikant
11. april 2003 - 15:23 #4
Jeg har lige fundet ud af, at Excel 97 IKKE selv gemmer denne property hver gang arket gemmes - hvor dårligt!

Man kan lave en workaround ved at gøre følgende:

I et nyt modul lægges følgende funktion ind:
Public Function GetProperty(P As String, Optional WorkbookName As Variant)
Dim S As Variant
Dim WB As Workbook
On Error Resume Next
If IsMissing(WorkbookName) Then
    If TypeOf Application.Caller Is Range Then
      Set WB = Application.Caller.Parent.Parent
    Else
      Set WB = ActiveWorkbook
    End If
Else
    Set WB = Workbooks(WorkbookName)
End If
S = WB.CustomDocumentProperties(P)
If S <> "" Then
    GetProperty = S
    Exit Function
End If
On Error GoTo EndMacro
GetProperty = WB.BuiltinDocumentProperties(P)
Exit Function
EndMacro:
GetProperty = ""
End Function

Det betyder, at du i en celle bare kan skrive f.eks. = =GetProperty("Last Save Time") til at stå i cellen. (Muligvis skal cellen formateres til tidsformat.)

Men da "Last Save Time" ikke opdateres af sig selv, er det nødvendigt også at lægge denne kode ind i "BeforeSave" eventet:

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    ThisWorkbook.BuiltinDocumentProperties("Last Save Time").Value = Now
End Sub

Denne lægger tidspunktet ind hver gang arket gemmes.

Nu skulle alt så fungere efter hensigten.
Funktionen kan også bruges til hente andre properties, hvis altså Excel er sat op til det:

Title
Subject
Author
Keywords
Comments
Template
Last Author
Revision Number
Application Name
Last Print Date
Creation Date
Last Save Time
Total Editing Time
Number of Pages
Number of Words
Number of Characters
Security
Category
Format
Manager
Company
Number of Bytes
Number of Lines
Number of Paragraphs
Number of Slides
Number of Notes
Number of Hidden Slides
Number of Multimedia Clips
Hyperlink Base ** Microsoft Office 97 only
Number of characters (with spaces) ** Microsoft Office 97 only
Avatar billede janvogt Praktikant
11. april 2003 - 15:46 #5
I stedet for funktionen ville man også kunne bruge følgende makro for at dirigere tidspunktet hen i en speciel celle:

Sub LastSaved()
    Worksheets("Sheet3").Range("F1").Value = ThisWorkbook.BuiltinDocumentProperties("Last Save Time").Value
End Sub
Avatar billede bak Forsker
11. april 2003 - 15:49 #6
Jan, funker det her ikke i xl 97 ?

Public Function lastsaved()
lastsaved = ActiveWorkbook.BuiltinDocumentProperties.Item(12)
End Function
Avatar billede bak Forsker
11. april 2003 - 15:57 #7
måske sådan. det virker fint i xl2000
=getproperties("last save time")

Public Function GetProperties(navn)
Application.Volatile
GetProperties = ActiveWorkbook.BuiltinDocumentProperties.Item(navn)
End Function
Avatar billede janvogt Praktikant
11. april 2003 - 16:08 #8
Nej det virker ikke i Excel 97.
Man bliver nødt til at vedligeholde nogle properties selv - heriblandt "Last Save Time"
Avatar billede bak Forsker
11. april 2003 - 16:13 #9
Kan du så stadig finde andre argumenter end prisen, for at beholde det ??  :-)
Avatar billede janvogt Praktikant
11. april 2003 - 16:15 #10
Jeg fandt denne makro til at tjekke hvilke properties som virker:

Sub DisplayProperties()

      Dim v as String

      ' Initiate error handler
      On Error Resume Next

      ' iterate through each built-in property
      For Each x In ActiveWorkbook.BuiltinDocumentProperties
        ' attempt to return value of property
        v = x.Value
        ' if property not set, error 440 will occur
        If Err = 440 Then
            ' reset error handler
            Err = 0
            ' prepare "Not Set" message
            v = "Not Set"
        End If

        ' display property name, and value or "Not Set" if applicable
        MsgBox x.Name & Chr(10) & v
      Next x

End Sub

http://support.microsoft.com/default.aspx?scid=kb;en-us;135099
Avatar billede janvogt Praktikant
11. april 2003 - 16:17 #11
Personligt kan jeg ikke finde ret mange argumenter for at beholde Excel 97 ...

Mit problem er bare at få overbevist min arbejdsgiver, som har mange tusinde Excel-licenser ..... :-)
Avatar billede bak Forsker
11. april 2003 - 20:18 #12
Jan, Jeg har lige testes XP og der er den også god nok, men på XL97 kan jeg heller ikke få automatisk opdatering :-(
Avatar billede janvogt Praktikant
22. april 2003 - 08:50 #13
jroi, fik du løst dit problem?
Avatar billede jroi Nybegynder
22. april 2003 - 14:47 #14
Hei. Jeg har ikke prøvd enda, men det var så mye her at jeg ble usikker på hva jeg skal gjøre...

hva konkret skal jeg gjøre?
Avatar billede janvogt Praktikant
22. april 2003 - 15:08 #15
Det kommer an på hvilken version af Excel du har.
Avatar billede jroi Nybegynder
23. april 2003 - 08:03 #16
Å, ja! Det er XP - norsk versjon.
Avatar billede janvogt Praktikant
23. april 2003 - 09:53 #17
Så burde du nok kunne bruge den makro, som jeg først nævner:
Sub LastSaved()
    Worksheets("Sheet1").Range("A1").Value = ThisWorkbook.BuiltinDocumentProperties("Last Save Time").Value
End Sub
Avatar billede janvogt Praktikant
08. maj 2003 - 12:14 #18
jroi fandt du af det?
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Vi har et stort udvalg af Excel kurser. Find lige det kursus der passer dig lige her.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester