🙏 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!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Datum in Abhänigkeit von Zellenänderung

CALC ist die Tabellenkalkulation, die Sie immer wollten.
puba
Beiträge: 9
Registriert: Mo 21. Nov 2016, 19:19

Datum in Abhänigkeit von Zellenänderung

Beitrag von puba » Di 3. Jan 2017, 15:41

Hallo,
in einer Lagerbestandstabelle möchte ich gern das Datum (Erneuert am) automatisch ändern lassen,
wenn in der Spalte Mengexxxx oder xxxxPreis eine Änderung vorgenommen wurde.

Spalten:
Artikelnummer Artikelbeschreibung Warengruppe Menge2015 Menge2016 Einheit Verkaufspreis Einkaufspreis Erneuert am


Wie gehe ich da am besten vor?

Gruß
Armin

HeritzP
* LO-Experte *
Beiträge: 966
Registriert: Mo 9. Dez 2013, 19:08

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von HeritzP » Di 3. Jan 2017, 18:04

Hallo,

das sollte dir helfen.
http://de.openoffice.info/viewtopic.php?f=25&t=56497

Ansonsten eine Beispieldatei hochladen.

Gruß HeritzP
HeritzP

alles nur geklaut

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von F3K Total » Di 3. Jan 2017, 18:59

Hi,
das geht in deinem Fall mit z.B. dieser Benutzerfunktion (Makro)

Code: Alles auswählen

Function INSERT_DATE_ON_CHANGE(D,E,G,H)
    INSERT_DATE_ON_CHANGE = now()
End function
Siehe Beispiel anbei. Damit das Makro laufen darf, stellst du unter Extras/Optionen/LibreOffice/Sicherheit/Makrosicherheit mindestens die Stufe "Mittel" ein, dann wirst du beim Öffnen von Dokumenten gefragt, ob du Makros ausführen möchtest.
Gruß R
Dateianhänge
Änderungsdatum.ods
(10.63 KiB) 139-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von karolus » Di 3. Jan 2017, 19:30

Hallo

@F3K Total: Die genialsten Ideen sind einfach … ich bin fast schon frustriert das ich nicht darauf gekommen bin.

Schönes neues Jahr allerseits!
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von F3K Total » Di 3. Jan 2017, 19:53

Hallo karolus,
danke für die Blumen :)
Auch ich hatte es zunächst ohne Makro, alà lorbass versucht, ist mir leider nicht gelungen.
Dir auch ein frohes neues Jahr!
Gruß Rik
Windows 11: AOO, LO Linux Mint: AOO, LO

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von mikele » Di 3. Jan 2017, 19:56

Hallo,
ich möchte ungern als Stimmungskiller auftreten, aber nachteilig ist, dass das Datum auch beim Öffnen der Datei neu gesetzt wird ... (sorry Rik :oops: )

@Alle: Ein gesundes und friedvolles Jahr 2017!
Gruß,
mikele

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von mikele » Di 3. Jan 2017, 20:03

Hallo,
lorbas' Lösung klappt mit folgender Variante:

Code: Alles auswählen

=WENN(UND(D2="";E2="");"";WENN(ZELLE("TYPE";I1)="v";I1;JETZT()))
bezogen auf F3K Total's Beispieldatei.
Gruß,
mikele

F3K Total
* LO-Experte *
Beiträge: 2501
Registriert: So 10. Apr 2011, 10:10

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von F3K Total » Di 3. Jan 2017, 22:50

Hallo mikele,
mikele hat geschrieben:ich möchte ungern als Stimmungskiller auftreten, aber nachteilig ist, dass das Datum auch beim Öffnen der Datei neu gesetzt wird ...
Danke, ist mir nicht aufgefallen :roll:
mikele hat geschrieben:lorbas' Lösung klappt mit folgender Variante:

Code: Alles auswählen
=WENN(UND(D2="";E2="");"";WENN(ZELLE("TYPE";I1)="v";I1;JETZT()))
Kann es sein, dass ich etwas falsch mache? Bei mir wird das Datum bei jeder Änderung auf dem Tabellenblatt geändert.

Darum anbei eine etwas aufwendigere Lösung, die jetzt hoffentlich keinen Fehler mehr hat. Das folgende Makro ist an das Tabellenereignis "Inhalt geändert" gebunden.

Code: Alles auswählen

Sub INSERT_DATE_ON_CHANGE(oCell)
    oCCN = oCell.Columns.ElementNames(0)
    if oCCN = "D" or oCCN = "E" or oCCN = "G" or oCCN = "H" then
        oTimeCell = oCell.Spreadsheet.getcellbyposition(8,oCell.Celladdress.row)
        oTimeCell.value = now()
    endif
End Sub
Gruß R
Dateianhänge
Änderungsdatum.ods
(11.22 KiB) 157-mal heruntergeladen
Windows 11: AOO, LO Linux Mint: AOO, LO

Benutzeravatar
karolus
* LO-Experte *
Beiträge: 2540
Registriert: Fr 10. Dez 2010, 10:01

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von karolus » Mi 4. Jan 2017, 00:21

Hallo

Zu letzterem hätte ich dann noch das python-äquivalent anzubieten:

Code: Alles auswählen

from datetime import datetime as dt

def timestamp_on_change(event):    
    dtstamp = dt.now().strftime('%Y-%m-%d %H:%M:%S')
    if {'D', 'E', 'G', 'H'}.intersection( event.Columns.ElementNames ):
        targetcell = event.Spreadsheet.getCellByPosition( 8, event.CellAddress.Row )
        targetcell.FormulaLocal = dtstamp
Anmerkung: python hat ein eigenes Datums|Zeit-Modell … das müsste man etwas umständlich ins Datums-modell von Calc umrechnen, daher der Hack via .FormulaLocal
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

puba
Beiträge: 9
Registriert: Mo 21. Nov 2016, 19:19

Re: Datum in Abhänigkeit von Zellenänderung

Beitrag von puba » Mi 4. Jan 2017, 19:25

Hallo,
Danke für eure sehr hilfreichen Antworten und Lösungsvorschläge.
Die Beispiele von F3K Total waren sehr hilfreich.
Die erste Version der
function INSERT_DATE_ON_CHANGE(D,E,G,H)
habe ich voll verstanden und nachvollziehen können (leider mit den geschilderten Nachteilen.
Bei der 2. Version

Code: Alles auswählen

Sub INSERT_DATE_ON_CHANGE(oCell)
    oCCN = oCell.Columns.ElementNames(0)
    if oCCN = "D" or oCCN = "E" or oCCN = "G" or oCCN = "H" then
        oTimeCell = oCell.Spreadsheet.getcellbyposition(8,oCell.Celladdress.row)
        oTimeCell.value = now()
    endif
End Sub
habe ich ein Problem, das nachzuvollziehen.
In der Beispiel-Datei klappt das
in meiner Tabelle nicht.
Was passiert in der 4. Zeile :

Code: Alles auswählen

oTimeCell = oCell.Spreadsheet.getcellbyposition(8,oCell.Celladdress.row)
?
Warum bekomme ich beim Ausführen der 2. Zeile den Hinweis:
BASIC-Laufzeitfehler.
Argument ist nicht optional.
?
bzw:
Ein Scripting Framework Fehler trat während der Ausführung vom Basic-Skript Standard.Module1.INSERT_DATE_ON_CHANGE auf.
Meldung: wrong number of parameters!
Gruß
Armin


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.



Antworten