Ein Betrag soll zeitabhängig reduziert werden

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Mengert
Beiträge: 1
Registriert: Mi, 10.01.2007 17:38

Ein Betrag soll zeitabhängig reduziert werden

Beitrag 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]
yeti
*****
Beiträge: 324
Registriert: Mi, 20.10.2004 12:11
Wohnort: Emmendingen

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag 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
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

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

Beitrag 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
Antworten