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.