🙏 Bitte helfen Sie uns das LibreOffice Forum zu erhalten. 🙏
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.

🍀 Wir hoffen auf Ihre Unterstützung - vielen Dank!🍀

❤️ 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. 🤗

bei Datumseingaben in Zelle Ax soll Betrag aus Zelle Ex ausg

Alles zur Programmierung im LibreOffice.
Antworten
ChaosZarth
Beiträge: 7
Registriert: Mi 6. Jul 2011, 22:18

bei Datumseingaben in Zelle Ax soll Betrag aus Zelle Ex ausg

Beitrag von ChaosZarth » Mi 6. Jul 2011, 22:22

Hallo liebe User,
ich habe ein Haushaltsbuch in Calc erstellt, bei dem bei Datumseingabe oder dem Hereinkopieren eines Datums in Zelle Ax der Betrag aus Zelle Ex (schon getätigt, aber noch nicht vom Konto abgebucht) ausgeschnitten und in Zelle Cx eingefügt werden soll.
Mit dem Makrorecorder habe ich folgenden Code generiert:

Code: Alles auswählen

sub Betrag_abbuchen(Zeilennummer as Integer)
 rem ----------------------------------------------------------------------
 rem define variables
 dim document as object
 dim dispatcher as object
 rem ----------------------------------------------------------------------
 rem get access to the document
 document = ThisComponent.CurrentController.Frame
 dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
 rem ----------------------------------------------------------------------
 dim args1(0) as new com.sun.star.beans.PropertyValue
 args1(0).Name = "ToPoint"
 args1(0).Value = "$A$14"
 dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
 rem ----------------------------------------------------------------------
 dim args2(0) as new com.sun.star.beans.PropertyValue
 args2(0).Name = "ToPoint"
 args2(0).Value = "$E$Zeilennummer"
 dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args2())
 rem ----------------------------------------------------------------------
 dispatcher.executeDispatch(document, ".uno:Cut", "", 0, Array())
 rem ----------------------------------------------------------------------
 dim args4(12) as new com.sun.star.beans.PropertyValue
 args4(0).Name = "OuterBorder.LeftBorder"
 args4(0).Value = Array(0,0,2,0,0)
 args4(1).Name = "OuterBorder.LeftDistance"
 args4(1).Value = 0
 args4(2).Name = "OuterBorder.RightBorder"
 args4(2).Value = Array(0,0,2,0,0)
 args4(3).Name = "OuterBorder.RightDistance"
 args4(3).Value = 0
 args4(4).Name = "OuterBorder.TopBorder"
 args4(4).Value = Array(0,0,2,0,0)
 args4(5).Name = "OuterBorder.TopDistance"
 args4(5).Value = 0
 args4(6).Name = "OuterBorder.BottomBorder"
 args4(6).Value = Array(0,0,2,0,0)
 args4(7).Name = "OuterBorder.BottomDistance"
 args4(7).Value = 0
 args4(8).Name = "InnerBorder.Horizontal"
 args4(8).Value = Array(0,0,2,0,0)
 args4(9).Name = "InnerBorder.Vertical"
 args4(9).Value = Array(0,0,2,0,0)
 args4(10).Name = "InnerBorder.Flags"
 args4(10).Value = 0
 args4(11).Name = "InnerBorder.ValidFlags"
 args4(11).Value = 127
 args4(12).Name = "InnerBorder.DefaultDistance"
 args4(12).Value = 0
 dispatcher.executeDispatch(document, ".uno:SetBorderStyle", "", 0, args4())
 rem ----------------------------------------------------------------------
 dim args5(0) as new com.sun.star.beans.PropertyValue
 args5(0).Name = "ToPoint"
 args5(0).Value = "$C$Zeilennummer"
 dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args5())
 rem ----------------------------------------------------------------------
 dispatcher.executeDispatch(document, ".uno:Paste", "", 0, Array())

end sub

Das (Zeilennummer as Integer) ist auf meinen Mist gewachsen, ich hab keine Ahnung ob ich das nicht lieber schnell wieder vergessen sollte. Ich bräuchte etwas, womit ich die Zeilennummer aus Spalte A auslesen kann, damit ich sie auf Spalte E und C anwenden kann. Weiterhin müsste dieses Ereignis (die extraktion aus E in C) bei jeder manuellen Datumseingabe und bei jedem Hereinkopieren eines Datums in A geschehen.
Danke im Vorraus. Auch bei weiteren Fragen die das Problem konkretisieren bin ich dankbar.

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

Re: bei Datumseingaben in Zelle Ax soll Betrag aus Zelle Ex

Beitrag von karolus » Do 7. Jul 2011, 06:26

Hallo
Vergiss den aufgezeichneten Code, trag in C1 die Formel ein:
=WENN(A1;E1;"")
und kopiere die Formel nach unten.

Gruß Karo
LO7.4.7.5 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.0.3 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

tobikahl
Beiträge: 6
Registriert: Mo 4. Jul 2011, 12:23

Re: bei Datumseingaben in Zelle Ax soll Betrag aus Zelle Ex

Beitrag von tobikahl » Do 7. Jul 2011, 09:43

karolus hat geschrieben:Hallo
Vergiss den aufgezeichneten Code, trag in C1 die Formel ein:
=WENN(A1;E1;"")
und kopiere die Formel nach unten.

Gruß Karo
Warum schwer wenns auch einfach geht ;););)

ChaosZarth
Beiträge: 7
Registriert: Mi 6. Jul 2011, 22:18

Re: bei Datumseingaben in Zelle Ax soll Betrag aus Zelle Ex

Beitrag von ChaosZarth » Do 7. Jul 2011, 15:55

Das wäre eine Lösung wenn die Beträge aus Spalte E nicht auch summiert würden, um ein potentielles Gesamtergebnis zu liefern; denn sie werden damit nicht aus Spalte E herausgeschnitten.

Ich habe jetzt eine zusätzliche Spalte eingefügt, so das in Spalte F alle Beträge stehen (sowohl die abgebuchten, als auch die noch nicht abgebuchten). In Spalte C steht:
=WENN(A3;F3;"") und in Spalte E:

=WENN(NICHT(A3);F3;"")

damit wird leider, wenn in Spalte F nichts drin steht, in Spalte E 0,00 € angezeigt. Es soll jedoch gar nichts angezeigt werden, wenn die entsprechende Zelle in Spalte F leer ist.

Komisch, in Spalte C funktioniert es doch auch.

Ich habe es auch schon mit
=WENN(A21="";F21;"")
probiert, das Ergebnis ist dasselbe.

ChaosZarth
Beiträge: 7
Registriert: Mi 6. Jul 2011, 22:18

Re: bei Datumseingaben in Zelle Ax soll Betrag aus Zelle Ex

Beitrag von ChaosZarth » Do 7. Jul 2011, 16:10

So ich habs jetzt mit einer Formel in Spalte E geschafft:

=WENN(NICHT(A3);WENN(F3>0;F3;"");"")

Wie setze ich den Thread jetzt auf gelöst?


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