Hallo urbanks,
Dabei wäre vielleicht nicht uninteressant wie genau die Programmiersprache heisst die man
in Openofficeprogrammierprogrammen verwendet. Um mit diesen Namen dann
eben nach Büchern suchen könnte.
Wenn Du mal unter
-> Extras
-> Makros
---> Makros verwalten
nachschaust, dann siehst Du dort die Programmiersprachen die 'OpenOffice' (OOo, LO, AOO) unterstüzt.
Ich hoffe es ist nicht nur das einfache Basic...
Selbst das "einfache" StarBasic ist für sehr viele Aufgaben bestens geeignet.
Wie du eben festgestellt haben müsstest, kann man nebst StarBasic auch noch JavaScript, BeanShell und Python benutzen. Jedoch geht das nicht so einfach oder komfortabel wie mit StarBasic, da nur bei StarBasic ein Editor schon von Haus aus integriert ist.
Bei z.B. Python muss man einen externen Editor nehmen und sein Programm darin schreiben. Anschließend muss man das geschriebene Programm selber in der gewünschten Calc-Datei (als Beispiel) integrieren. Wie das genau geht, weiß ich jetzt so auf die schnelle nicht, wollte nur grob umschreiben das es etwas umständlicher ist.
Hier im Forum gibt es einige Calc-Dateien wo Python-Makros integriert sind, die zu diversen Problemen als Vorschlag präsentiert wurden. Kannst ja mal danach suchen.
Zu deinem eigentlichem Problem.
Du hast ja schon verschiedene Hinweise dazu bekommen, inklusive einer Beispieldatei von clag. Jedoch hast Du dich noch nicht dazu geäußert wie Du die gewünschten Zellen kopiert haben möchtest. Und damit meine ich, ob Zellformate und Notizen mitkopiert werden sollen (siehe Beispieldatei von clag), oder ob es dir nur um den eigentlichen Inhallt/Wert der Zellen geht?
Es gibt mit StarBasic verschiedene Wege um etwas aus einer Datei in eine andere Datei zu kopieren. Und nicht nur der Weg ist unterschiedlich, sondern auch wie etwas kopiert wird.
Das Beispiel von clag kopiert alles über die Zwischenablage aus einer Datei heraus.
Mein Beispiel kopiert nur die Werte aus der Datei heraus.
Code: Alles auswählen
Dim myFileProp1(0) as New com.sun.star.beans.PropertyValue
Sub Main
oDok = thisComponent
sStartdatei = FileOpenDialog ("Datei auswählen")
myFileProp1(0).name = "Hidden"
myFileProp1(0).Value = True ' false
oExterneDatei = starDesktop.loadComponentfromURL(sStartdatei, "_blank", 0, myFileProp1())
oHauptDateiBlatt1 = oDok.sheets.getByName("Tabelle1")
oExternesBlatt1 = oExterneDatei.sheets(0)
oHauptDateiBlatt1.getCellRangeByName("A1:C3").clearContents(255)
dim aDatArray()
aDatArray = oExternesBlatt1.getCellRangeByName("A1:C3").getDataArray
oHauptDateiBlatt1.getCellRangeByName("A1:C3").setDataArray(aDatArray)
oExterneDatei.close(True)
End Sub
'
'########################################################################################################
'
function FileOpenDialog(title as String) as String
filepicker = createUnoService("com.sun.star.ui.dialogs.FilePicker")
filepicker.Title = title
filepicker.execute()
files = filepicker.getFiles()
FileOpenDialog = files(0)
End function
'
'########################################################################################################
'
Wohl bemerkt! Es werden nur die Werte im Zellbereich A1:C3 und keine Formeln, Notizen und Zellformate mit diesem Beispiel kopiert.
Das Datei öffnen geht genau so wie im Beispiel von clag. Auf bestimmte Fehlerüberprüfungen habe ich jetzt einfach mal verzichtet.
Ach ja, hätte ich jetzt beinahe vergessen!
Willst Du die Daten (Werte/Texte oder was auch immer) aus der zu öfnenden Datei in die Datei schreiben von wo aus Du das Makro startest, oder sollen die Daten in eine andere Datei geschrieben werden?
Gruß
balu