Seite 1 von 2

Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Di, 09.05.2017 17:32
von Rookie176
Hallo,

hoffe es ist jemand in der weiten Welt des Web`s hier und kann mir helfen ;-)

Ich möchte einmal das Änderungsdatum in der Tabelle für eine Spalte festhalten.
Am besten Datum/Zeit/User
Gehe mal von aus, das ich dies dann für andere Spalten dann einfach übernehmen kann.

Des weiteren das Änderungsdatum der Liste im Fußzeilenbereich.
Dies aber nur geändert werden soll, bei Änderungen der Tabelle ( Einträge )
und nicht beim einfachen speichern bzw. drucken.

Meine Tabelle geht von A1 bis F999 / in G sollte dann das Datum für die Spalten erscheinen.

Ich verlange viel, ich weiss, habe aber Mc Google schon abgefragt, komme aber nicht mit den dort
angegeben Werte der VBA / Makroprogrammierung nicht klar.

Formeln selbst über OO abrufen geht :lol:
Habe 4.1.3

Danke

Rookie176

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 08:27
von clag
Hallo Rookie176,

man kann per Formeltrick ein Datum/Uhrzeit fixieren, das funktioniert aber praktisch nur einmal,
dann muß man den Triggerwert entfernen und neu setzen um eine neues fixiere zu ereichen.
Das macht kaum Sinn bei deinen Ansprüchen.

Da bleibt nur eine Makro-Lösung, die die entsprechenden Zellen überwacht und dann ggf. die Zeiten in die Zellen schreibt.

Erstelle doch einmal eine Beispeieldatei und lade die hier hoch, dann kann man mal gucken ob und wie das machbar ist.

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 08:40
von Rookie176
Guten Morgen,

Danke für die Antwort und Deiner Hilfe.
Datumtest.ods
(7.57 KiB) 157-mal heruntergeladen
Hier meine Tabelle.

Stehe für weitere Fragen und Anregungen zur Verfügung 8)

Gruss Rookie176

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 08:46
von clag
hey super,
welche Information soll denn nun deine leere Beispiel-Tabelle vermitteln??

so wird das nix mit der Hilfe!

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 08:52
von Rookie176
Moin,

es sollte also in G erkannt werden, wenn in A bis F in der selben Spalte der Text geändert wird.
Dort dann Datum und Uhrzeit vlt. auch Benutzer eintragen.

EDIT : Dieses sollte sich dann nur wieder bei der nächsten Änderung wieder neu einstellen

Und Hauptsächlich sollte in der Fußzeile das Änderungsdatum erscheinen, wenn die Tabelle
geändert wurde. Dieses aber nicht, wenn sie nur gespeichert ( ohne Änderung ) oder gedruckt wurde.

Hoffe ich habe es einigermaßen hin bekommen, die Erklärung.

Danke

Gruss Rookie176

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 08:53
von Stephan
Meine Tabelle geht von A1 bis F999 / in G sollte dann das Datum für die Spalten erscheinen.
stimmt das wirklich? Ich würde die Einträge des Änderungsdatums für dioer Spalten eher in A1000 bis F1000 vermuten, ansonsten wäre zu klären wo genau was in Spalte G stehen soll - der Eintrag für Spalte A in B1, der Eintrag für Spalte B in G2 usw.?
komme aber nicht mit den dort
angegeben Werte der VBA / Makroprogrammierung nicht klar.
ich fürchte eine Lösung ohne Programmieren wird nicht möglich sein.



Gruß
Stephan

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 09:03
von Rookie176
Stephan hat geschrieben: Mi, 10.05.2017 08:53
Meine Tabelle geht von A1 bis F999 / in G sollte dann das Datum für die Spalten erscheinen.
stimmt das wirklich? Ich würde die Einträge des Änderungsdatums für dioer Spalten eher in A1000 bis F1000 vermuten, ansonsten wäre zu klären wo genau was in Spalte G stehen soll - der Eintrag für Spalte A in B1, der Eintrag für Spalte B in G2 usw.?
In G sollte das Änderungsdatum stehen, wenn Zellen links d.h. A bis F irgendeine Änderung getan worden ist.
komme aber nicht mit den dort
angegeben Werte der VBA / Makroprogrammierung nicht klar.
ich fürchte eine Lösung ohne Programmieren wird nicht möglich sein.
In die Einstellung mit Alt+F11 war ich schon ;-)
Habe auch schon einiges kopiert und auprobiert, bekomme aber immer Syntax Fehler !


Gruss Rookie176

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 09:37
von Stephan
In G sollte das Änderungsdatum stehen, wenn Zellen links d.h. A bis F irgendeine Änderung getan worden ist.
dann geht z.B.:

Code: Alles auswählen

Sub testen(event)
	zeile = event.RangeAddress.Startrow
	blatt = event.RangeAddress.Sheet
	eintrag = Date
	ThisComponent.Sheets(blatt).getCellByPosition(6,zeile).String = eintrag
End Sub
wenn man es dem Tabellenereignis "Inhalt geändert" zuordnet.

bekomme aber immer Syntax Fehler !
dann musst Du den Code posten der den Fehler verursacht, nur so kann jemand etwas dazu sagen.

Ist es eigentlich so schwer das selbst zu wissen, das niemand etwas zu einem Code-Fehler sagen kann ohne den Code zu kennen?



Gruß
Stephan

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 09:49
von clag
@Stephan hat es ja schon beantwortet
habe hier noch eine Bespieldatei erstell
set-Time.ods
(10.55 KiB) 189-mal heruntergeladen
viel Spaß

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 09:54
von Rookie176
Stephan hat geschrieben: Mi, 10.05.2017 09:37
dann musst Du den Code posten der den Fehler verursacht, nur so kann jemand etwas dazu sagen.

Ist es eigentlich so schwer das selbst zu wissen, das niemand etwas zu einem Code-Fehler sagen kann ohne den Code zu kennen?



Gruß
Stephan

Code: Alles auswählen

Function ChangedOn() As Date

   Dim oSheet As Object
   Dim ChgDate As Variant
   
   oSheet = ThisComponent()
   
   ChgDate = oSheet.DocumentProperties.ModificationDate

'   ChgDate ist leer, wenn das Dokument noch nie gespeichert wurde. In diesem Fall CreationDate nutzen

   If ChgDate.Year = 0 Then
      ChgDate = oSheet.DocumentProperties.CreationDate
   End If
   
   ChangedOn = DateSerial(ChgDate.Year, ChgDate.Month, ChgDate.Day)
   
End Function
Dieser war es z.B.

Gruss Rookie176

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 10:06
von Rookie176
clag hat geschrieben: Mi, 10.05.2017 09:49 @Stephan hat es ja schon beantwortet
habe hier noch eine Bespieldatei erstell

set-Time.ods

viel Spaß
Hallo Clag,

habe die Tabelle runter geladen.
Wenn ich jetzt aber was ändere, zeigt es mir nichts an.
Führe ich das Makro aus oder will es ausführen, muss ich erst die Sicherheit runter stellen.
Selbst dann funzt es leider nicht.

Wo liegt da mein Denk- oder Ausführungsfehlverhalten ?

Gruss Rokkie176

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 10:07
von Stephan
Für mich leider nicht nachvollziehbar. Sowohl bei Aufruf der Funktion per Makro:

Code: Alles auswählen

Sub Main
	Msgbox ChangedOn
End Sub

Function ChangedOn() As Date

   Dim oSheet As Object
   Dim ChgDate As Variant
   
   oSheet = ThisComponent()
   
   ChgDate = oSheet.DocumentProperties.ModificationDate

'   ChgDate ist leer, wenn das Dokument noch nie gespeichert wurde. In diesem Fall CreationDate nutzen

   If ChgDate.Year = 0 Then
      ChgDate = oSheet.DocumentProperties.CreationDate
   End If
   
   ChangedOn = DateSerial(ChgDate.Year, ChgDate.Month, ChgDate.Day)
   
End Function
als auch bei Aufruf direkt in einer Tabellenzelle:

Code: Alles auswählen

=CHANGEDON()
kein Syntax-Fehler.

gerade gestestet in OOo 3.3.0 und LO 5.1.6


Gruß
Stephan

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 10:18
von Rookie176
@Stephan

habe Dir jetzt mal eine Hardcopy angehangen.
Nach dem eintragen von =Changedon()
passiert der Fehler.

Gruss Rookie176

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 12:25
von Stephan
Aus dem Screenshot ist kein Syntaxfehler ersichtlich. Das die Fehlermeldung von Syntaxfehler spricht kann daran liegen das sie falsch ist, weil OO/LO gelegentlich zu erkannten Fehlern den falschen Fehlermeldetext ausgeben.

Ich würde erstens OO (inklusiv. Schnellstarter) neu starten und schauen ob der Fehler wieder auftritt.

Zweitens die komplette Zeile löschen in der der Fehler auftritt und schauen wie sich die Fehlermeldung dann ggf. verschiebt oder nicht mehr auftritt.

Drittens die Funktion direkt im Dokument speichern und nicht im Bereich "meine Makros".

Viertens alle (scheinbaren) Leerzeichen in der Funktion kontrollieren, denn schon die Markierung der Fehlerzeile (=nur 1 Leerzeichen markiert) ist merkwürdig und deutet vielleicht darauf hin das manche Leerzeichen in Wahrheit nicht druckbare Steuerzeichen sind, auf welche OO/L O manchmal 'nervös' reagieren.


Alles das sind Mutmaßungen aufgrund von Erfahrungswissen. Eigentlich ist allein aus dem Screenshot keine zuverlässige Fehleranalyse ableitbar.


Gruß
Stephan

Re: Änderungsdatum für gesamte Tabelle und einzelne Zellen

Verfasst: Mi, 10.05.2017 12:50
von Rookie176
Hallo Viertens hat geholfen,

mit dem Befehl =Changedon() kommt das Datum. Super
Wie kann ich dem nun sagen, das die Spalte geprüft wird
bzw. halt auch das Änderungsdatum dann für das ganze Dokument ( Tabelle )
in der Fußzeile kommt ?

Gruss Rookie176

EDIT : wie kann man denn den Code im Doku speichern ?

EDIT2: Habe es gefunden, das mit dem Inhalt speichern. Danke
Datum wird geändert !!! Thanks, nun muss ich noch ein Datum in die Fußzeile bekommen.