Seite 1 von 1

Ein Betrag soll zeitabhängig reduziert werden

Verfasst: Mi, 10.01.2007 18:01
von Mengert
Hallo Leute,
habe folgendes Problem, das ich schon seit Tagen versuche zu lösen.
Vielleicht kann mir jemand helfen.

Es soll ein bestimmter Betrag in A1 monatlich automatisch um z.B. 50Euro reduziert werden, wenn die Calc-Tabelle geöffnet wird.

Ist dieses überhaupt möglich ?

Vielen Dank für Eure Antworten, wenn es denn welche gibt in voraus.

Danke!![/b]

Verfasst: Mi, 10.01.2007 18:22
von yeti
Hi,

geht glaube ich schon. Mit einem Makro.
Dazu empfehle ich Dir Dich hier in der Basic-Ecke umzuschauen:
viewforum.php?f=18

Gruß Yeti

Verfasst: Mi, 10.01.2007 19:12
von Karolus
Hallo

Dreizeiler machen wir auch hier:

Code: Alles auswählen

Sub abziehen			'erstes Tabellenblatt A1
ozelle =ThisComponent.sheets(0).getcellrangebyName("A1").getvalue 
ozelle = ozelle - 50
ThisComponent.sheets(0).getcellrangebyName("A1").setvalue(ozelle)
End Sub
Dieses Makro in der 'Standard-bibliothek-Modul1' des Dokumentes speichern, und mit ->Extras->Anpassen 'Ereigniss' dem Ereigniss 'Dokument öffnen' zuweisen.

Gruß Karo

Verfasst: Mi, 10.01.2007 19:57
von Karolus
Hallo

Sorry, ich hatte die Bedingung 'nur einmal pro Monat' übersehen, dann werden es aber ein paar Zeilen mehr:

Code: Alles auswählen

Sub abziehen			'erstes Tabellenblatt A1
azelle =ThisComponent.sheets(0).getcellrangebyName("A1").getvalue 
bzelle =ThisComponent.sheets(0).getcellrangebyName("A2").getvalue 
if bzelle = 0 or bzelle > now then
bzelle = now
ThisComponent.sheets(0).getcellrangebyName("A2").setvalue(bzelle)
if month(bzelle) =month(now) then
exit sub
end if
end if
if month(bzelle) < month(now) or year(bzelle) < year(now) then
azelle = azelle - 50
ThisComponent.sheets(0).getcellrangebyName("A1").setvalue(azelle)
ThisComponent.sheets(0).getcellrangebyName("A2").setvalue(now)
end if
End Sub
Benötigt noch Zelle A2 als Datums/Zeitfeld.

Gruß Karo

(gelöst)Ein Betrag soll zeitabhängig reduziert werden

Verfasst: Sa, 13.01.2007 09:30
von Karolus
Hallo

Inzwischen wurde geklärt, daß der Abzugsbetrag proportional zur Kalendermonatsdifferenz (aktuelles Datum minus Ausgangsdatum) ist.

Dafür reicht eine einfach Calc-formel, Makrocode ist nicht notwendig:

=A2-MONATE(A4;A5;1)*A3
A2 ist Ausgangsbetrag
A3 ist monatliche Differenz
A4 ist Ausgangsdatum
A5 ist =HEUTE()

Gruß Karo