ich bin vor kurzem von MS-Office (PC) auf LibreOffice 4.1.1.2 (Mac) umgestiegen und kämpfe nun mit ein paar Problemen, welche mir die Arbeit sehr erschweren. Der Übersichtlichkeit halber teile ich meine Fragen auf mehrere Themen auf.
Ich verwende in Calc aufgezeichnete Makros, welche sehr simpel sind, hier ein Beispiel:
Code: Alles auswählen
ub Rechnung_neu
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 = "Nr"
args1(0).Value = 1
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Remove", "", 0, Array())
rem ----------------------------------------------------------------------
dim args3(0) as new com.sun.star.beans.PropertyValue
args3(0).Name = "Nr"
args3(0).Value = 2
dispatcher.executeDispatch(document, ".uno:JumpToTable", "", 0, args3())
rem ----------------------------------------------------------------------
dim args4(2) as new com.sun.star.beans.PropertyValue
args4(0).Name = "DocName"
args4(0).Value = "Rechnungen"
args4(1).Name = "Index"
args4(1).Value = 1
args4(2).Name = "Copy"
args4(2).Value = true
dispatcher.executeDispatch(document, ".uno:Move", "", 0, args4())
rem ----------------------------------------------------------------------
dim args5(0) as new com.sun.star.beans.PropertyValue
args5(0).Name = "Name"
args5(0).Value = "Rechnung"
dispatcher.executeDispatch(document, ".uno:RenameTable", "", 0, args5())
rem ----------------------------------------------------------------------
dim args6(0) as new com.sun.star.beans.PropertyValue
args6(0).Name = "ToPoint"
args6(0).Value = "$B$16"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args6())
end sub
Nach mehrfachem Gebrauch auf zwei (per BTSync) synchronisierten Macs funktionieren die Makros auf einmal nicht mehr, oder nicht vollständig. Das o. g. Makro löscht z. B. noch die Tabelle Rechnung, aber Rechnung_blanko wird nicht mehr kopiert, sondern in Rechnung umbenannt.
Bei einem weiteren Makro werden div. Zellen von einer Tabelle in eine andere kopiert, auch das funktioniert nicht mehr, es werden auf einmal ganz andere Zellen übernommen, obwohl sich an der Quell- und Zieltabelle nichts bewegt hat.
Nach meiner Einschätzung hat sich auch an den Makros sichtbar nichts verändert - ich bin hier einigermaßen ratlos. Warum verändert sich die Funktion der Makros ohne weiteres Zutun? Oder vielmehr: wie kann das verhindert werden?
Das ganze ist nun schon mehrfach passiert, am Anfang dachte ich noch an einen von mir verschuldeten Fehler beim Speichern und habe die Makros mehrfach aufgenommen (vorher alte Makros natürlich gelöscht), mittlerweile bin ich aber sicher, dass es nicht an einem Eingriff von mir liegt, evtl. liegt es auch an dem zweiten Problem (http://www.libreoffice-forum.de/viewtop ... 24&t=12468).
Vielen Dank für jedwede Hilfe.
EDIT: Wie in dem o. g. zweiten Thread von mir beschrieben, scheint das kopieren der Tabelle vom Tabellennamen abhängig zu sein: öffne ich eine Arbeitskopie (wg. der genannten Sperrung), oder benenne ich die Datei um, wird die Tabelle nicht mehr kopiert. Verschiebe ich hingegen die Calc-Datei in ein anderes Verzeichnis, klappt es mit dem Makro, welches die Tabelle kopiert, das kopieren der Zellen im zweiten Makro funktioniert leider immer noch nicht. Gretchenfrage: wieso sind interne Makros vom Dateinamen abhängig?