Ausgangssituation:
- verwendet wird eine LibreOffice Calc-Datei mit mehreren Tabellenblättern
- per Button soll eine Kopie nur von einem bestimmten Tabellenblatt erstellt werden und in eine neue Calc-Datei gepackt werden
- Ich habe mich an einem Makro aus dem Internet orientiert: ursprünglich hat dieses Makro eine PDF-Datei von einem bestimmten Bereich erstellt (funktioniert problemlos)
- meine Idee war, dass ich dachte ich könnte das Gleiche für eine .ods Datei machen -> erstelle eine neue Calc-Datei .ods von einem bestimmten Bereich aus einem Tabellenblatt
- es funktioniert leider nur bedingt...es wird zwar eine Datei erzeugt aber mit allen Tabellenblätter aus der ursprünglichen Calc-Datei - ich würde gerne aber nur ein bestimmtes Tabellenblatt übergeben
Ziel: ein bestimmter Bereich bzw. Tabellenblatt wird kopiert und in eine neue Calc-Datei .ods gepackt
mein angepasstes Makro:
Code: Alles auswählen
Sub SaveRange
dim document as object
dim dispatcher as object
document = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
oSheet = ThisComponent.CurrentController.getActiveSheet()
oCellRange = oSheet.getCellRangeByName("A1:K50")
dim aFilterData(0) as new com.sun.star.beans.PropertyValue
aFilterData(0).Name = "Selection"
aFilterData(0).Value = oCellRange
dim args1(1) as new com.sun.star.beans.PropertyValue
args1(0).Name = "URL"
args1(0).Value = "file:///C:/Test_Kopie.ods"
args1(1).Name = "FilterData"
args1(1).Value = aFilterData()
dispatcher.executeDispatch(document, ".uno:SaveAs", "", 0, args1())
End Sub
Danke im Voraus für Tipps & Anpassungen!