[gelöst] Bereich von ODS-Datei in ODS-Datei übernehmen
Moderator: Moderatoren
[gelöst] Bereich von ODS-Datei in ODS-Datei übernehmen
Hallo,
nachdem ich mit eurer Hilfe die Daten aus der CSV-Datei einlesen konnte. Bin ich jetzt beim nächsten Schritt: ich möchte in Datei1 einen Makro aufrufen, der die Datei2 öffnet und einen festen Bereich mit Inhalt einfügen in die Datei1 überträgt. Danach soll die Datei2 geschlossen werden.
Mit dem was ich aus dem CSV-Problem gelernt habe konnte ich zwar die Datei2 öffnen und schließen aber die Übertragung des Bereichs gelingt mir nicht.
Danke für eure Hilfe!
nachdem ich mit eurer Hilfe die Daten aus der CSV-Datei einlesen konnte. Bin ich jetzt beim nächsten Schritt: ich möchte in Datei1 einen Makro aufrufen, der die Datei2 öffnet und einen festen Bereich mit Inhalt einfügen in die Datei1 überträgt. Danach soll die Datei2 geschlossen werden.
Mit dem was ich aus dem CSV-Problem gelernt habe konnte ich zwar die Datei2 öffnen und schließen aber die Übertragung des Bereichs gelingt mir nicht.
Danke für eure Hilfe!
Zuletzt geändert von kilix am Sa, 13.05.2023 11:32, insgesamt 1-mal geändert.
Grüße
kilix
kilix
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
Hallo,
wie sieht denn dein bisheriger Versuch aus?
wie sieht denn dein bisheriger Versuch aus?
Gruß,
mikeleb
mikeleb
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
so:
Hab einfach versucht deinen Code der CSV-Datei zu verwenden.
Code: Alles auswählen
Sub Sassen_import
'Zugriff auf die aktuelle Datei
oDoc=ThisComponent
'Öffnen der csv-Datei
Dim args(1) as New com.sun.star.beans.PropertyValue
args(0).Name= "FilterName"
args(0).Value = "Text - txt - csv (StarCalc)"
'Aktuelles Verzeichnis einlesen und Datei Sassen.ods öffnen
surl = thiscomponent.url
apfad = split(surl,"/")
apfad(ubound(apfad)) = "sassen.csv"
sURL = convertToURL(join(apfad,"/"))
oODS = StarDesktop.LoadComponentFromURL(sURL, "_blank", 0, args())
'Auslesen der Daten in ein Array der Daten
aDaten=oODS.Sheets(0).getCellRangeByName("A3:H10000").getDataArray
'Schreiben der Daten in die aktuelle Datei
oDoc.Sheets(0).getCellRangeByName("A3:H10000").setDataArray(aDaten)
'Sassen-Datei schließen
oODS.close(false)
End Sub
Grüße
kilix
kilix
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
Hallo,
und was funktioniert nicht?
Die Daten sollten korrekt übertragen werden.
und was funktioniert nicht?
Die Daten sollten korrekt übertragen werden.
Gruß,
mikeleb
mikeleb
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
es werden keine Daten übertragen.
stopp, halt, hab jetzt einen Fehler gefunden. Da steht ja noch die csv-Datei drin!. Ich seh mir das gleich an.
stopp, halt, hab jetzt einen Fehler gefunden. Da steht ja noch die csv-Datei drin!. Ich seh mir das gleich an.
Grüße
kilix
kilix
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
Hab es korrigiert, funktioniert aber nicht.
Ich habe gestern im Internet ein PDF-Dokument von Michael Dannhöfer (nehme an, der Name ist bekannt) gefunden: StarOffice/OpenOffice.org Basic FAQ.
Darin werden eine Fülle von Fragen, wie beispielsweise "Wie kann man Zellbereiche kopieren?" usw mit Erläuterungen und den passenden Codes beantwortet. Das oben von mir angefragte Problem ist zwar nicht dabei aber einiges kann auch für mich interessant sein weil diese Fragen von der Anwendung her beantwortet werden. Ich habe mir auch das Dokument von Andrew Pitonyak angesehn. Damit kann ich zwar was Basic selbst betrifft etwas anfangen aber was UNO etc betrifft ist so theoretisch erklärt, dass ich es nicht verstehe weil mit die verwendeten Fachausdrücke nicht bekannt sind (ich komme von der Büro-Organisation und war nie Programmierer obwohl ich doch einiges in Dec Basic und FreeBasic programmiert habe).
Ich glaube aber mit eurer Hilfe, speziell zu dem obigen Problem, und wenn ich Fragen habe kann ich weiterkommen.
Zum obigen Problem habe ich noch eine Ergänzung: der zu kopierende Bereich auf Datei2 liegt in einer der 3 Tabellen und ist in eine der 2 Tabellen von Datei2 zukopieren. D.h. zum angefraten Problem kommt noch die Adressierung der Tabellen im Dokument dazu.
Für weitere Hilfe wäre ich sehr dankbar!
Ich habe gestern im Internet ein PDF-Dokument von Michael Dannhöfer (nehme an, der Name ist bekannt) gefunden: StarOffice/OpenOffice.org Basic FAQ.
Darin werden eine Fülle von Fragen, wie beispielsweise "Wie kann man Zellbereiche kopieren?" usw mit Erläuterungen und den passenden Codes beantwortet. Das oben von mir angefragte Problem ist zwar nicht dabei aber einiges kann auch für mich interessant sein weil diese Fragen von der Anwendung her beantwortet werden. Ich habe mir auch das Dokument von Andrew Pitonyak angesehn. Damit kann ich zwar was Basic selbst betrifft etwas anfangen aber was UNO etc betrifft ist so theoretisch erklärt, dass ich es nicht verstehe weil mit die verwendeten Fachausdrücke nicht bekannt sind (ich komme von der Büro-Organisation und war nie Programmierer obwohl ich doch einiges in Dec Basic und FreeBasic programmiert habe).
Ich glaube aber mit eurer Hilfe, speziell zu dem obigen Problem, und wenn ich Fragen habe kann ich weiterkommen.
Zum obigen Problem habe ich noch eine Ergänzung: der zu kopierende Bereich auf Datei2 liegt in einer der 3 Tabellen und ist in eine der 2 Tabellen von Datei2 zukopieren. D.h. zum angefraten Problem kommt noch die Adressierung der Tabellen im Dokument dazu.
Für weitere Hilfe wäre ich sehr dankbar!
Grüße
kilix
kilix
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
Hallo,
dein Makro nimmt die Daten, die im Bereich A3:H10000 des 1. Tabellenblattes der sassen.csv stehen und trägt sie in die Zellen A3:H10000 des 1. Tabellenblattes des aktuellen Dokuments ein.
Der Zugriff auf die Tabellen erfolgt per wobei die Zahl die interne Nummer der Tabelle angibt (die Zählung beginnt bei Null!)
Alternativ:
oder
dein Makro nimmt die Daten, die im Bereich A3:H10000 des 1. Tabellenblattes der sassen.csv stehen und trägt sie in die Zellen A3:H10000 des 1. Tabellenblattes des aktuellen Dokuments ein.
Der Zugriff auf die Tabellen erfolgt per
Code: Alles auswählen
.Sheets(0)
Alternativ:
Code: Alles auswählen
oDoc.Sheets.getByIndex(0)
Code: Alles auswählen
oDoc.Sheets.getByName("Tabelle1")
Gruß,
mikeleb
mikeleb
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
danke mikele!
ich denke mit dieser Art der Hilfe werde ich schon weiterkommen!
ich denke mit dieser Art der Hilfe werde ich schon weiterkommen!
Grüße
kilix
kilix
Re: Bereich von ODS-Datei in ODS-Datei übernehmen
Hallo, hat etwas gedauert weil ich anderweitig beschäftigt war. Aber jetzt habe ich die Lösung:
1.) war der Dateiname falsch: ich musste von einer ods-Datei, in der die Daten schon aufbereitet sind, und nicht der csv-Datei einlesen und
2.) das Kopieren hatte doch funktioniert, nur und das habe ich erst gestern erkannt, die Kopie ging an die falsche Tabelle. Ich wußte damals noch nicht dass die Null in
die Nummer der Tabellen bezeichnen (war wohl von der für mich sehr ungewohneten Schreibweise irritiert
). Heute ist es mir klar und nachdem ich sie durch 1 ersetzt hatte passte alles.
Nachdem das gut ging werde ich ganz gut weiterkommen. Wenn ich Fragen habe melde ich mich gerne wieder. Auf jeden Fall jetzt schon ein herzliches Danke!
1.) war der Dateiname falsch: ich musste von einer ods-Datei, in der die Daten schon aufbereitet sind, und nicht der csv-Datei einlesen und
2.) das Kopieren hatte doch funktioniert, nur und das habe ich erst gestern erkannt, die Kopie ging an die falsche Tabelle. Ich wußte damals noch nicht dass die Null in
Code: Alles auswählen
aDaten=oODS.Sheets(0).getCellRangeByName("A3:H10000").getDataArray
'Schreiben der Daten in die aktuelle Datei
oDoc.Sheets(0).getCellRangeByName("A3:H10000").setDataArray(aDaten)

Nachdem das gut ging werde ich ganz gut weiterkommen. Wenn ich Fragen habe melde ich mich gerne wieder. Auf jeden Fall jetzt schon ein herzliches Danke!
Grüße
kilix
kilix