Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

letztes Speicherdatum in Feld eintragen Excel 97





Frage

Ich weiß die Frage klingt bescheuert, aber wenn ich die Lösung wüßte würde ich Euch nicht damit behelligen. Meine Frage: Ist es möglich in Excel 97 das Datum der letzten Speicherung in ein Feld einzutragen und wenn ja wie funzt es!? Thanx vorab Pit

Antwort 1 von pelle

Hallo PitFFM,

hast du es schon mal unter
"Suche im Forum" mit "Speicherdatum" versucht?

Schau hier mal nach:

https://supportnet.de/discussion/listmessages.asp?AutoID=107348

gruss
pelle

Ps.: Falls es nicht passt, meld Dich nochmal!!

Antwort 2 von PitFFM

Hab´den Thread gelesen !!!

Ä G Y P T E N ????

Irgwendwie versteh´ich nur spanisch.

Bin vielleicht zu blond ;-)

gibt´s auch ´nen weniger komplizierten Weg???

Wenn nicht, wie füge ich denn dieses Makro ein ???

In HTML bin ich besser. Da Copy und Pasteted man einfach in den Code.

Das funzt bei Excel aber leider nicht.

;-) :-(

Antwort 3 von pelle

Hallo PitFFM,

sorry, sollte nur Hinweis sein!

Bin genauso blond :-))) +2 )

gruss
pelle



Antwort 4 von PitFFM

Das ist ja Prima!

Hab´aber immer noch keine Lösung!

CU P* ;-)

Antwort 5 von sicci

Hallo Pit

wechsle mit Alt/F11 in die VBA-Entwicklunsgumgebung, klicke links (im sog. Projekt-Explorer) "This Workbook" doppelt. Ins sich rechts öffnende Fenster kopierst Du folgendes hinein:

Private Sub Workbook_BeforeSave( _
ByVal SaveAsUI As Boolean, Cancel As Boolean)
   Range("A1") = FileDateTime(ThisWorkbook.FullName)
End Sub

Beim Speichern wird dann automatisch Datum+Uhrzeit zum Speicherzeitpunkt in A1 eingetragen. Das heißt du hast die Anzeige des letzten Speicherdatums nur ab dem ersten Mal speichern mit dem Speicher-Makro in der Datei.

Willst Du das letzte Speicherdatum einer Datei anzeigen lassen, die kein solches Makro enhält, mußt Du Dir mit einem Trick helfen: unsichtbar wird eine zweite Excel-Mappe generiert, die das letzte Speicherdatum der aktivenMappe sozusagen von außen in eine Variable einliest und das Eingelesene dann in der aktiven Mappe ausgibt. Dieses kannst Du in ein sog. normales Modul kopieren:

mit Alt/F11 in die Entwicklungsumgebung, Menue Einfügen/Modul öffnet ein Fenster, in das Du dieses Makro hineinkopieren kannst:

Sub Pit()
Dim exl, SP, AW$
AW = ActiveWorkbook.Name
   Set exl = CreateObject("Excel.Application")
exl.Workbooks.Add
      With exl.Sheets(1)
         SP = FileDateTime(Workbooks(AW).FullName)
      End With
   Set exl = Nothing
Range("A1") = SP
End Sub

Wieder in Deine Excel-Tabelle wechseln und Menue/Extras/Makros/Makro/Pit-Ausführen klicken.

Gruß
sicci

Antwort 6 von want2cu

@sicci:

ich bin mir nicht so ganz sicher, ob das folgende Listing nicht auch noch eine Alternative wäre:

Sub letztesSpeicherdatumErmitteln()
MasgBox ThisWorkbook.BuiltinDocumentProperties _
("Lst save time").Value
End Sub

Das ist zwar "nur" ne Ausgabe in einer Messagebox, aber es müßte dich auch anzupassen sein, damit der Wert in eine Zelle eingetragen wird.
Hierbei wird auf die Dokumenteigenschaften zurückgegriffen.

CU
Klaus

Antwort 7 von shrike

@sicci & want2cu
Blöd ist bloß, daß sowohl der Dateiname als auch die Dokumenteigenschaften erst nach dem ersten Speichern zur Verfügung stehen. Außerdem würde damit immer Datum/Zeit des vorletzten Speicherns in der Zelle stehen.

Warum nehmt ihr nicht einfach "Date" oder "Now"???

Steht übrigens auch in obigem Thread ;-)

shrike

Antwort 8 von shrike

@want2cu
Nochmal zur Erklärung:
Die Properties geben natürlich in einer MsgBox die korrekte Speicherzeit an. Aber wenn man es automatisieren will (mit dem Prozess "Workbook_BeforeSave"), dann stimmt es nicht mehr.

shrike

Antwort 9 von want2cu

die Frage war:
"Ist es möglich in Excel 97 das Datum der letzten Speicherung in ein Feld einzutragen und wenn ja wie funzt es!? "

Bei dieser Fragestellung bin ich davon ausgegangen, dass die Datei bereits einmal gespeichert wurde und damit auch die Dateieigenschaften vorhanden sind.
Wie soll denn ein Speicherdatum abgefragt werden, wenn noch gar nicht gespeichert wurde???
Insoweit verstehe ich deine Antwort Nr.7 nicht ;-)

CU
klaus

Antwort 10 von shrike

Naja, dafür könnte man den Vorschlag von want2cu in der Open-Prozedur eintragen:

Private Sub Workbook_Open()
Worksheets(1).Range("A1").Value=ThisWorkbook.BuiltinDocumentProperties(12)_
.Value
End Sub

Dann stimmt's auch wieder ;-)

shrike

Antwort 11 von shrike

@want2cu
Nimms nicht so ernst - keiner will dich kritisieren ;-)

Ich bezog mich eher auf Sicci, denn bei seiner Lösung stimmt es eben nicht ganz.
Wenn ich während der Prozedur "BeforeSave" den Wert aus FileDateTime oder aus den Properties eintrage, dann habe ich eben den Wert vom vorletzten Speichern und nicht vom letzten Speichern (denn das ist ja in diesem Moment noch nicht passiert).

Bei der Open-Prozedur würde es dann stimmen (siehe 10).
Aber dabei hätte man folgenden Nachteil: Wenn die Datei z.B. den ganzen Tag offen ist und nur ab und zu gespeichert wird (nicht geschlossen und geöffnet), dann wird die Zelle nicht aktualisiert.

Für mich scheint es mit "Date" oder "Now" in der BeforeSave-Prozedur eben einfacher. Dabei schreibt man ja auch die Speicherzeit in die Zelle, denn in diesem Moment wird die Datei ja gespeichert (naja, vielleicht hat man eine Abweichung von Zehntelsekunden oder so ;-)

shrike

Antwort 12 von sicci

Hallo shrike,

Du hast Recht, mein erster Vorschlag sollte wenn schon ins Workbook_Open. Er würde sonst das vorletzte Speicherdatum anzeigen incl. der von Dir beschriebenen Mängel.
Ich selbst nutze nur die zweite Version, mit der ich IMMER -- AUCH OHNE VORHER ERST SPEICHERN ZU MÜSSEN !! -- Zugriff auf das letzte Speicherdatum habe. (geht natürlich nicht für neue Dateien, die noch nie gespeichert wurden ;-))

Unterschied FileDateTime zu Date&Now: Date&Now greift die Zeit am Anfang des Speichervorgangs ab, FileDateTime am Ende. Bei schnellen Rechnern vielleicht nicht relevant, da der Speichervorgang nur Sekunden braucht(meist aber nicht nur Zehntelsekunden). Bei großen Dateien allerdings oder bei langsameren Rechnern durchaus auch mal im Minutenbereich. Da muß man sich halt entscheiden, was man ausgegeben haben will.

Der Zugriff auf die Properties(12) funktioniert leider bis Version 97 nicht Weder unter Win95, noch unter 98, noch unter NT (getestet! - Etliche Properties sind abrufbar, einige, wie auch das Speicherdatum(die 12) nicht. Auch nicht in ner MsgBox :-(.
Es wäre eh die eleganteste Methode und ich nehme an, daß MS diesen eigentlich-schon-Bug ab Vesion2000 behoben hat.

Gruß
sicci

Antwort 13 von sicci

PS: Nochmal zu DocumentProperties

Da hat Klaus ganz recht:

1. Sie könn(t)en wie in MsgBox auch in eine Zelle oder sonst ein Objekt oder Variable ausgegeben/eingelesen werden.

2. Das BeforeSave-Ereignis braucht man für Ausgabe der Properties natürlich nicht. Excel speichert die Properties auch ohne User-Ereignis-Makro :-).

Nur der Zugriff darauf ist wie o.e. nur bedingt möglich.

Gruß
sicci

Antwort 14 von shrike

Natürlich braucht man keine Ereignis-Prozedur dazu, aber dann müßte der User ja immer irgendwas tun - auf ein Symbol/Schaltfläche klicken oder so. Und die User sind doch immer so faul und vergeßlich... ;-)

shrike

Antwort 15 von sicci

... hehe shrike
üble Verunglimpfung aller User ;-)))))))

aber ich meinte nicht "keine Ereignis-Prozedur", sondern das 'Before-Save'-Ereignis, das nicht gebraucht wird.

Man könnte zB im Workbook_Open oder im Sheet_Activate, oder - auch ganz nett - bei Doppelklick, die Property anzeigen lassen, vollautomatisch :-). Oder vielleicht beim Selection_Change als MsgBox, um den User zu mehr Fleiß zu erziehen *dg*.

Gruß sicci

Antwort 16 von PitFFM

*Bauklötze staun*

Hmmmhhhh !!! Offensichtlich war die Frage doch nicht so blöd!

Immerhin hat sie ein gewaltiges Diskussionspotential.

Ich bin zwar bisher nur ein "Allerweltsuser" aber jetzt fängt mich zu interessieren wie das in der Entwicklungsumgebung so funktioniert.

Das klingt zwar alles recht kompliziert und ich hoffte ursprünglich einen etwas einfacher zu praktizierenden Weg zu finden, aber sei´s drum. Ich probier´s einfach aus.

Erstmal großen Dank an alle.

CU P*

Antwort 17 von shrike

@sicci
"beim Selection_Change als MsgBox"

Boah ey! Du bist ja oberfies ;-)))

shrike

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: