Datum der letzten Änderung in Zelle anzeigen lassen
Moderator: Moderatoren
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Datum der letzten Änderung in Zelle anzeigen lassen
In einer Zelle kann nur ein Text, ein Wert oder eine Formel stehen.
Lösung:
schreibe =JETZT() in Deine Zelle, dann formatiere sie (Format>Zellen...>Zahlen>Zahlen-Format "letzte Änderung " JJJJ-MM-TT)
Hilft Dir das?
Lösung:
schreibe =JETZT() in Deine Zelle, dann formatiere sie (Format>Zellen...>Zahlen>Zahlen-Format "letzte Änderung " JJJJ-MM-TT)
Hilft Dir das?
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Datum der letzten Änderung in Zelle anzeigen lassen
Mit JETZT() wäre aber nur der letzte - nämlich der aktuelle - Zugriff dokumentiert. JETZT() aktualisiert sich bei jeder Neuberechnung der Tabelle, ob automatisch oder manuell. - Schau mal in die Hilfe.
Um das letzte Änderungsdatum aus den Dateieigenschaften zu ziehen könnte man eine benutzerdefinierte Funktion schreiben - da ich aber die Methode nicht kenne, um an die Dateieigenschaften zu kommen, mag ich hier keine vorschlagen.
Um das letzte Änderungsdatum aus den Dateieigenschaften zu ziehen könnte man eine benutzerdefinierte Funktion schreiben - da ich aber die Methode nicht kenne, um an die Dateieigenschaften zu kommen, mag ich hier keine vorschlagen.
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Datum der letzten Änderung in Zelle anzeigen lassen
OK, um noch genauer zu werden:
mit dem Inhalt aus Datei>Eigenschaften>letzte Änderung bekommt man den Zeitstempel der letzten Sicherung der Datei.
Speichern des Codes in der STANDARD Bibliothek der OOo Installation, Aufruf der Funktion mit =CalcDoc_Modify_Date()
Für den Textzusatz "letzte Änderung" dann wieder mit der Formatierung der Zelle arbeiten (wenn's nicht eh eine Spalte "Letzte Änderung" ist)
Für das automatische Festhalten einer Änderung: programmieren! Beispiel onColumnChange
mit dem Inhalt aus Datei>Eigenschaften>letzte Änderung bekommt man den Zeitstempel der letzten Sicherung der Datei.
Code: Alles auswählen
Function CalcDoc_Modify_Date()
sTemp = "n/a"
oDok = ThisComponent
If IsNull( oDok ) THEN
CalcDoc_Modify_Date() = sTemp
msgbox "oDok null"
Exit Function
End If
If IsEmpty( oDok ) THEN
CalcDoc_Modify_Date() = sTemp
msgbox "oDok empty"
Exit Function
End If
If oDok.supportsService(_
"com.sun.star.sheet.SpreadsheetDocument" ) Then
cf_oDAT = oDok.DocumentInfo.ModifyDate
' work with DocInfo
if IsEmpty( cf_oDAT ) then
sTemp = "n/a"
else
With cf_oDAT
' set return format
' force month and day to two digits
sTemp = _
.Year & "-" & _
Format( .Month, "0#" ) & "-" & _
Format( .Day, "0#" )
End With
End If
' assign func return value
CalcDoc_Modify_Date = sTemp
' check DOK
End If
End Function
Für den Textzusatz "letzte Änderung" dann wieder mit der Formatierung der Zelle arbeiten (wenn's nicht eh eine Spalte "Letzte Änderung" ist)
Für das automatische Festhalten einer Änderung: programmieren! Beispiel onColumnChange
onColumnChange hat geschrieben:
Dieses Code-Beispiel beobachtet auf Eingaben (in der Spalte A auf einem Tabellenblatt "Tabelle1") und setzt daraufhin einen Zeitstempel in die korrespondierende Zeile der Spalte B
[Verwendung eines LISTENERS]
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Datum der letzten Änderung in Zelle anzeigen lassen
Hallo Zusammen,
Man kann es mit einer Formel wie folgt lösen:
Habe ich mir mal von Karolus abgeschaut.
Schöne Grüsse.
Jürgen
Das stimmt leider nicht ganz.komma4 hat geschrieben:In einer Zelle kann nur ein Text, ein Wert oder eine Formel stehen.
Man kann es mit einer Formel wie folgt lösen:
Code: Alles auswählen
=("Letzte Änderung: "&TEXT(JETZT();"TT.MM.JJJJ HH:MM:SS"))

Schöne Grüsse.
Jürgen
Software hat keinen Verstand - benutze deinen eigenen...!
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Win 7 SP1/ LibreOffice 3.4.2 OOO340m1 (Build:203) / Firefox 15.0.1 / Notebook ASUS K70IO 64 Bit-Betriebssytem
Re: Datum der letzten Änderung in Zelle anzeigen lassen
Das ist mir aus der Beschreibung nicht ganz klar geworden, ich hätte eher gedacht, Du suchst nach einer persistenteren Speicherung des Datums. Da bietet sich die benutzerdefinierte Funktion von Winfried an. - Die sieht übrigens komplizierter aus, als ich mir das vorgestellt habe.tox hat geschrieben:Der erste Vorschlag von Dir komma4 ist genau, das was ich gesucht hab.

@Jürgen
Da gibt es aber einen erheblichen Unterschied. Du hast da eine Formel, die einen String erzeugt, in der ursprünglichen Formatierungslösung von Winfried ist der Zellwert immer noch die Datumszahl. - Mit der könnte man noch weiterrechnen, wenn es denn Sinn machen würde.
Re: Datum der letzten Änderung in Zelle anzeigen lassen
Ich benötige für ein Sortierkriterium das Änderungsdatum (Zeilen, bzw. Zellen bezogen). Habe den Code mal für mein Bedürfnis abgeändert:
. Das Änderungsdatum wird in die Zelle B2 übetragen. Für die Zelle B3 gilt folgender Code
Problem ist, ändere ich den Text in einer der A-Spalten ändert sich automatisch auch das Datum und die Zeit in allen B-Spalten. Mein Ergebenis Soll aber eineindeutig sein. D.h A2 ist NUR mit B2 gekoppelt und wird auch nur geändert wenn A2 geändert wird. B3 ändert sich nur bei Änderung von A3.
Jemand eine Idee?
Gruß
Ibanez
p.s. dass mit dem ISTTEXT hat keinerlei Bedeutung, in die Zellen werden nur Textwerte Eingetragen!
Code: Alles auswählen
=WENN(ISTTEXT(A2);(TEXT(JETZT();"TT.MM.JJJJ HH:MM:SS"));"")
Code: Alles auswählen
=WENN(ISTTEXT(A3);(TEXT(JETZT();"TT.MM.JJJJ HH:MM:SS"));"")
Jemand eine Idee?
Gruß
Ibanez
p.s. dass mit dem ISTTEXT hat keinerlei Bedeutung, in die Zellen werden nur Textwerte Eingetragen!
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Datum der letzten Änderung in Zelle anzeigen lassen
hatten wir auch schonmal (geht nicht mit Formeln, aber mit einem Makro):
onColumnChange
onColumnChange
onColumnChange hat geschrieben:Dieses Code-Beispiel beobachtet auf Eingaben (in der Spalte A auf einem Tabellenblatt "Tabelle1") und setzt daraufhin einen Zeitstempel in die korrespondierende Zeile der Spalte B
[Verwendung eines LISTENERS]
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Re: Datum der letzten Änderung in Zelle anzeigen lassen
Hallo,
Viele Grüße
AhQ
das dachte ich auch, dann wurde ich eines besseren belehrt und zwar hier. Aber genau den Aufbau beachten, ich bin im ersten Anlauf gescheitert, wie es an meinen Fragen deutlich sichtbar wird.komma4 hat geschrieben:hatten wir auch schonmal (geht nicht mit Formeln, aber mit einem Makro):

Viele Grüße
AhQ
- komma4
- ********
- Beiträge: 5332
- Registriert: Mi, 03.05.2006 23:29
- Wohnort: Chon Buri Thailand Asia
- Kontaktdaten:
Re: Datum der letzten Änderung in Zelle anzeigen lassen
Mit der Formel wird das Datum geschrieben, wenn der Zellinhalt in A1 gesetzt wird. Sie versagt aber, wenn der Inhalt (ohne Löschen des Inhalts) geändert wird.
Die Ausgabe des "Datums des letzten Speicherns" (mein Codebeispiel weiter unten) geht weiterhin nur, wenn auf das DocumentInfo-Objekt zugegriffen wird.
Neu: ab Version OOo 3.0.0 wird dieses offiziell nicht mehr unterstützt ("deprecated"), statt dessen wurde die Eigenschaft DocumentProperties eingeführt:
Die Ausgabe des "Datums des letzten Speicherns" (mein Codebeispiel weiter unten) geht weiterhin nur, wenn auf das DocumentInfo-Objekt zugegriffen wird.
Neu: ab Version OOo 3.0.0 wird dieses offiziell nicht mehr unterstützt ("deprecated"), statt dessen wurde die Eigenschaft DocumentProperties eingeführt:
Code: Alles auswählen
Function CalcDoc_Modification_Date()
sTemp = "n/a"
oDok = ThisComponent
If IsNull( oDok ) THEN
CalcDoc_Modification_Date() = sTemp
msgbox "oDok null"
Exit Function
End If
If IsEmpty( oDok ) THEN
CalcDoc_Modification_Date() = sTemp
msgbox "oDok empty"
Exit Function
End If
' da hier als Calc-Funktion ("cf_")genutzt:
' Abfrage des Dokumententyps
If oDok.supportsService(_
"com.sun.star.sheet.SpreadsheetDocument" ) Then
' neue Eigenschaft ab OOo 3.0.0
cf_oDAT = oDok.DocumentProperties.ModificationDate
' work with DocInfo
If IsEmpty( cf_oDAT ) Then
sTemp = "n/a"
else
With cf_oDAT
' set return format
' force month and day to two digits
sTemp = _
.Year & "-" & _
Format( .Month, "0#" ) & "-" & _
Format( .Day, "0#" )
End With
End If 'gefülltes Objekt
' assign func return value
CalcDoc_Modification_Date = sTemp
End If ' check DOK
End Function[
Cheers
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)
Winfried
aktuell: LO 5.3.5.2 30m0(Build:2) SUSE rpm, unter Linux openSuSE Leap 42.3 x86_64/KDE5
DateTime2 Einfügen von Datum/Zeit/Zeitstempel (als OOo Extension)