🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱
🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀
>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗
[gelöst] Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
[gelöst] Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hallo !
Ich möchte erreichen, dass in einer bestimmten Zelle das Änderungsdatum geschrieben wird, wenn irgendeine andere Zelle verändert wird.
Beispiel:
Heute ist der 27.05. Ich ändere Zelle B 6. Wenn ich das mache, möchte ich in der Zelle A1 das Änderungsdatum stehen haben. Es soll immer das letzte Änderungsdatum in Zelle A1 stehen.
Hat jemand eine Idee?
Danke schon mal
Andy
Ich möchte erreichen, dass in einer bestimmten Zelle das Änderungsdatum geschrieben wird, wenn irgendeine andere Zelle verändert wird.
Beispiel:
Heute ist der 27.05. Ich ändere Zelle B 6. Wenn ich das mache, möchte ich in der Zelle A1 das Änderungsdatum stehen haben. Es soll immer das letzte Änderungsdatum in Zelle A1 stehen.
Hat jemand eine Idee?
Danke schon mal
Andy
Zuletzt geändert von schane65 am Mo 30. Mai 2016, 14:22, insgesamt 1-mal geändert.
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hallo,
leider habe ich unter Calc die (Writer-)Option "Feldbefehle einfügen" nicht gefunden. Daher hilft (m. W.) nur eine Makrolösung:
Variante 1) In die Zelle A1 wird das Änderungsdatum der Datei geschrieben. Dazu kannst du folgende eigene Funktion verwenden:
In die gewünschte Zelle (A1) schriebst du dann:
siehe Anhang, Tabellenblatt1.
Variante 2) Jede Änderung auf dem Tabellenblatt führen zu einer Datumseintrag. Dazu wird das Makro modify_blatt an das Tabellenereignis "Inhalt geändert" gebunden. Das Änderungsdatum wird dann auf diesem Blatt in die Zelle A1 geschrieben.
In der Beispieldatei habe ich es mal mit dem Tabellenblatt2 so gemacht.
leider habe ich unter Calc die (Writer-)Option "Feldbefehle einfügen" nicht gefunden. Daher hilft (m. W.) nur eine Makrolösung:
Variante 1) In die Zelle A1 wird das Änderungsdatum der Datei geschrieben. Dazu kannst du folgende eigene Funktion verwenden:
Code: Alles auswählen
Function modify_date_udf()
odoc=thiscomponent
odatum=odoc.getDocumentProperties().ModificationDate
ndatum=dateserial(odatum.year,odatum.month, odatum.day)+timeserial(odatum.hours,odatum.minutes,odatum.seconds)
modify_date_udf=ndatum
End Function
Code: Alles auswählen
=modify_date_udf()
Variante 2) Jede Änderung auf dem Tabellenblatt führen zu einer Datumseintrag. Dazu wird das Makro modify_blatt an das Tabellenereignis "Inhalt geändert" gebunden.
Code: Alles auswählen
Sub modify_blatt(oevent)
If oevent.supportsService("com.sun.star.sheet.SheetCell") Then
nr=oevent.getcelladdress.sheet
ElseIf oevent.supportsService("com.sun.star.sheet.SheetCellRange") Then
nr=oevent.getrangeaddress.sheet
ElseIf oevent.supportsService("com.sun.star.sheet.SheetCellRanges") Then
adr=oevent.getrangeaddresses
nr=adr(0).sheet
end if
otab=thiscomponent.sheets(nr)
otab.getcellbyposition(0,0).value=now()
end sub
In der Beispieldatei habe ich es mal mit dem Tabellenblatt2 so gemacht.
- Dateianhänge
-
- makro_calc_änderungsdatum.ods
- (9.54 KiB) 454-mal heruntergeladen
Gruß,
mikele
mikele
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Vielen lieben Dank. Ich denke, damit komme ich weiter.
Gruß
Andy
Gruß
Andy
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hallo!
Vielleicht bin ich ja zu blöd, aber ich habe versucht, dass =modify_date_udf() in eine weitere Tabelle einzufügen. Da funktioniert das Makro aber nicht. Was mach ich falsch?
Gruß
Andy
Vielleicht bin ich ja zu blöd, aber ich habe versucht, dass =modify_date_udf() in eine weitere Tabelle einzufügen. Da funktioniert das Makro aber nicht. Was mach ich falsch?
Gruß
Andy
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hallo mikele !
Ich habe dein Makro mal in eine neue Calc-Tabelle eingefügt. Zuerst habe ich nur den oberen Teil, wie du gesagt hast, als Makro eingefügt, hat nicht funktioniert. Auch das gesamte Makro funktioniert nicht.
Wenn ich z.b. =modify_date_udf() in Zelle A 1 eintrage, ist bei deiner Datei dieser Eintrag in der Eingabezeile nicht mehr zu sehen. In Zelle A1 steht ein Datum und eine Uhrzeit.
Bei mir ist der Eintrag =modify_date_udf() in der Eingabezeile in Großbuchstaben vorhanden, in A1 steht ein Datum und eine Uhrzeit. Es ändert sich jedoch nichts.
Woran liegt das? Ich muss dazu sagen, Makros sind nicht meine Welt. Ich kenne mich da nur ganz wenig aus.
Gruß
Andy
Ich habe dein Makro mal in eine neue Calc-Tabelle eingefügt. Zuerst habe ich nur den oberen Teil, wie du gesagt hast, als Makro eingefügt, hat nicht funktioniert. Auch das gesamte Makro funktioniert nicht.
Wenn ich z.b. =modify_date_udf() in Zelle A 1 eintrage, ist bei deiner Datei dieser Eintrag in der Eingabezeile nicht mehr zu sehen. In Zelle A1 steht ein Datum und eine Uhrzeit.
Bei mir ist der Eintrag =modify_date_udf() in der Eingabezeile in Großbuchstaben vorhanden, in A1 steht ein Datum und eine Uhrzeit. Es ändert sich jedoch nichts.
Woran liegt das? Ich muss dazu sagen, Makros sind nicht meine Welt. Ich kenne mich da nur ganz wenig aus.
Gruß
Andy
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hallo,
prüfe zunächst, ob die Makrosicherheit (Extras->Optionen->Sicherheit) auf "mittel" steht. Dann wirst du beim Öffnen der Datei gefragt, ob Makros erlaubt werden sollen.
prüfe zunächst, ob die Makrosicherheit (Extras->Optionen->Sicherheit) auf "mittel" steht. Dann wirst du beim Öffnen der Datei gefragt, ob Makros erlaubt werden sollen.
Gruß,
mikele
mikele
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hi mikele !
Das habe ich noch einmal überprüft, war aber schon so eingestellt. Calc frag mich ja auch, ob ich die Makros aktivieren will, was ich dann auch bestätige.
Gruß
Andreas
Das habe ich noch einmal überprüft, war aber schon so eingestellt. Calc frag mich ja auch, ob ich die Makros aktivieren will, was ich dann auch bestätige.
Gruß
Andreas
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hi !
Was muss ich denn in die Zelle A 1 bei der zweiten Alternative hineinschreiben? Vielleicht liegt da ja mein Fehler.
Gruß
Andy
Was muss ich denn in die Zelle A 1 bei der zweiten Alternative hineinschreiben? Vielleicht liegt da ja mein Fehler.
Gruß
Andy
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hallo,
@mikele
Die UDF liefert bei mir nur das Datum aus den Dokument-Eigenschaften: letzte Änderung --> Datum und Uhrzeit.
siehe auch: MRI oDatum
Ich habe dann die UDF geändert und nutze wie folgt:
statt:
modify_date_udf=ndatum
nutze ich:
modify_date_udf=now()
Mit NOW werden die aktuellen Daten angezeigt.
Es erfolgt aber keine Änderung der Zeit, wenn ich eine Änderung im Sheet vornehme.
Das gesamte Sheet-Event (modify_blatt(oevent)) funktioniert einwandfrei.
@andy
Hast Du mikele's Anweisung für die Makro-Lösung befolgt?
1. Das Makro in Dein Dokument eingeben.
2. Dann auf den jeweilige Reiter des betreffenden Tabellenblattes Rechtsklicken.
3. "Tabellenereignisse" auswählen.
4. "Inhalt geändert"
5. Auf den Button Makro klicken.
6. Das Makro unter Deinem Dokument-Name suchen und auswählen.
Gruß
Craig
@mikele
Die UDF liefert bei mir nur das Datum aus den Dokument-Eigenschaften: letzte Änderung --> Datum und Uhrzeit.
siehe auch: MRI oDatum
Ich habe dann die UDF geändert und nutze wie folgt:
statt:
modify_date_udf=ndatum
nutze ich:
modify_date_udf=now()
Mit NOW werden die aktuellen Daten angezeigt.
Es erfolgt aber keine Änderung der Zeit, wenn ich eine Änderung im Sheet vornehme.
Das gesamte Sheet-Event (modify_blatt(oevent)) funktioniert einwandfrei.
@andy
Hast Du mikele's Anweisung für die Makro-Lösung befolgt?
Dazu:Variante 2) Jede Änderung auf dem Tabellenblatt führen zu einer Datumseintrag. Dazu wird das Makro modify_blatt an das Tabellenereignis "Inhalt geändert" gebunden
1. Das Makro in Dein Dokument eingeben.
2. Dann auf den jeweilige Reiter des betreffenden Tabellenblattes Rechtsklicken.
3. "Tabellenereignisse" auswählen.
4. "Inhalt geändert"
5. Auf den Button Makro klicken.
6. Das Makro unter Deinem Dokument-Name suchen und auswählen.
Gruß
Craig
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: Wenn Zelle geändert wird, Änderungsdatum in andere Zelle schreiben
Hallo Craig !
Genau die Info hat mir gefehlt. Jetzt funktioniert alles tadellos, danke.
Gruß
Andy
Genau die Info hat mir gefehlt. Jetzt funktioniert alles tadellos, danke.
Gruß
Andy
An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:
Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.