Makro Inhalte kopieren und nur Zahlen einfügen in Calc

In OpenOffice hatte ich über den MakroRekorder ein Makro erstellt um Zellinhalte (Formeln) zu kopieren und danach nur die Zahlen in einen anderen Bereich einzufügen. In OO hat das auch anstandslos funktioniert. In LO (Version 5.2.3.3), funktioniert das nicht mehr ohne Probleme.

  • Entweder sind nach dem Kopiermakro weiterhin die Formeln in den Zellen vorhanden.
  • oder er kopiert einen Inhalt den er noch aus einer vorherigen Tabelle irgendwo im Zwischenspeicher hat.
  • Ganz selten klappt es auch.

Ich bin am verzweifeln. Warum ist LibreOffice damit überfordert?

Hier der verwendete Code

oSheet = oDoc.getsheets().getbyIndex(0)
oview=oDoc.getcurrentController()								
oview.setActiveSheet(oSheet)
document   = ThisComponent.CurrentController.Frame
		args1(0).Name = "ToPoint"
		args1(0).Value = "$D$6:$AM$100"
		dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
                    dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
		args3(0).Name = "ToPoint"
		args3(0).Value = "$D$6"
		dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args3())
		args4(0).Name = "Flags"
		args4(0).Value = "V"
		args4(1).Name = "FormulaCommand"
		args4(1).Value = 0
		args4(2).Name = "SkipEmptyCells"
		args4(2).Value = false
		args4(3).Name = "Transpose"
		args4(3).Value = false
		args4(4).Name = "AsLink"
		args4(4).Value = false
		args4(5).Name = "MoveMode"
		args4(5).Value = 4
		dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0, args4())

Hey Zahlendreher,

hmm, wenn ich unter LO 5.3 Dein Makro neu aufnehme kommt der selbe Code raus wie der, den du gepostet hast. Und es funktioniert einwandfrei.

Allerdings ist der Makrocode-Rekorder sowieso nicht wirklich zu empfehlen. Hier darfst Du nicht zu viel erwarten.

Was mich allerdings wundert: Du schreibst, mal geht es, mal wieder nicht. Das ist sehr ungewöhnlich und deutet wohl auf andere Probleme hin. Welches Betriebssystem fährst Du?

Im Übrigen ist allerdings auch dein Startcode entweder unvollständig oder falsch:

oSheet = oDoc.getsheets().getbyIndex(0)
oview=oDoc.getcurrentController()                               
oview.setActiveSheet(oSheet)

Die Variable oDoc ist nicht definiert und wird zum Fehler führen.

Viele Grüße
Tom

Hallo Toxitom, vielen Dank für Deine Antwort.
Das System ist Windows 7 und den Code habe ich nicht vollständig eingefügt. oDoc ist im vollständigen Code definiert (Option Explicit).

GELÖST - siehe BUG 70883:

https://bugs.documentfoundation.org/show_bug.cgi?id=70883

Wenn eine Schaltfläche aktiv ist, dann funktioniert der uno:copy Befehl nicht. Das war bei meiner Konstellation der Fall.
Wenn das Makro über Extra-Makros-ausführen aufgerufen wird, dann läuft das Makro ohne Probleme durch.