Daten aus anderer calc-Datei in die aktuelle übertragen
Moderator: Moderatoren
Daten aus anderer calc-Datei in die aktuelle übertragen
Hallo!
Ich habe folgendes Problem:
Ich will aus einer anderen ods-Datei (C:\OOO\quelle.ods) einen bestimmten Bereich (A3:H50) aus dem Tabellenblatt Tabelle3 in die aktuelle ods-Datei einlesen. Diese Werte sollen in das Tabellenblatt Tabelle5 ab Zelle B10 eingelesen werden.
Ich hab schon was hier gefunden, wie man von einer Datei in eine andere was einliest. Aber nicht in die aktuelle Datei und eben auch nicht aus bzw. in ein bestimmtes Tabellenblatt.
Kann mir da jemand weiterhelfen?
Vielen Dank schon mal!
Ich habe folgendes Problem:
Ich will aus einer anderen ods-Datei (C:\OOO\quelle.ods) einen bestimmten Bereich (A3:H50) aus dem Tabellenblatt Tabelle3 in die aktuelle ods-Datei einlesen. Diese Werte sollen in das Tabellenblatt Tabelle5 ab Zelle B10 eingelesen werden.
Ich hab schon was hier gefunden, wie man von einer Datei in eine andere was einliest. Aber nicht in die aktuelle Datei und eben auch nicht aus bzw. in ein bestimmtes Tabellenblatt.
Kann mir da jemand weiterhelfen?
Vielen Dank schon mal!
Re: Daten aus anderer calc-Datei in die aktuelle übertragen
Hallo,
anbei eine Calc Datei, die genau das macht.
Gruß R
Edit: Habe die Datei nochmal ausgetauscht, es gab eine Fehlermeldung wenn man keine Datei ausgewählt hatte.
anbei eine Calc Datei, die genau das macht.
Gruß R
Edit: Habe die Datei nochmal ausgetauscht, es gab eine Fehlermeldung wenn man keine Datei ausgewählt hatte.
- Dateianhänge
-
- Senke.ods
- (10.45 KiB) 1875-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Daten aus anderer calc-Datei in die aktuelle übertragen
Hallo R!
Hab's jetzt erst gesehen. Wahnsinn, das ging ja schnell. Vielen Dank für die Hilfe. Ist genau, was ich gebraucht hab.
Danke, Woatze
Hab's jetzt erst gesehen. Wahnsinn, das ging ja schnell. Vielen Dank für die Hilfe. Ist genau, was ich gebraucht hab.
Danke, Woatze
Re: Daten aus anderer calc-Datei in die aktuelle übertragen
Zuerst mal: Funktioniert sehr gut, danke!
Jetzt hab ich noch eine kleine Erweiterung des ganzen:
Was muss man ändern, dass jetzt nach der Auswahl einer Datei nicht nur ein bestimmtes Blatt/Bereich kopiert wird sondern gleich mehrere Bereiche?
Z.B. soll aus der Quelle Tabelle2 der Bereich B10:B20 nach Ziel Tabelle 2 B10:B20 und gleichzeitig auch noch
Tabelle3, C10:C20 nach Tabelle3, C10:C20
Tabelle4, C10:C20 nach Tabelle4, C10:C20
Tabelle5, C10:C20 nach Tabelle5, C10:C20
Tabelle6, C10:C20 nach Tabelle6, C10:C20
Tabelle7, C10:C20 nach Tabelle7, C10:C20
kopiert werden.
Gäbe es da eine Abkürzung, da von Tabelle3 bis Tabelle7 der Bereich der gleiche ist?
Viele Grüße
Woatze
Jetzt hab ich noch eine kleine Erweiterung des ganzen:
Was muss man ändern, dass jetzt nach der Auswahl einer Datei nicht nur ein bestimmtes Blatt/Bereich kopiert wird sondern gleich mehrere Bereiche?
Z.B. soll aus der Quelle Tabelle2 der Bereich B10:B20 nach Ziel Tabelle 2 B10:B20 und gleichzeitig auch noch
Tabelle3, C10:C20 nach Tabelle3, C10:C20
Tabelle4, C10:C20 nach Tabelle4, C10:C20
Tabelle5, C10:C20 nach Tabelle5, C10:C20
Tabelle6, C10:C20 nach Tabelle6, C10:C20
Tabelle7, C10:C20 nach Tabelle7, C10:C20
kopiert werden.
Gäbe es da eine Abkürzung, da von Tabelle3 bis Tabelle7 der Bereich der gleiche ist?
Viele Grüße
Woatze
Re: Daten aus anderer calc-Datei in die aktuelle übertragen
Hallo,
ja geht, siehe Datei.
Habe im Makro getDatafromFile jetzt möglichst viel kommentiert (immer hinter dem Hochkomma '), alle weiteren Varianten solltest Du selbst zusammenbasteln können.
Gruß R
ja geht, siehe Datei.
Habe im Makro getDatafromFile jetzt möglichst viel kommentiert (immer hinter dem Hochkomma '), alle weiteren Varianten solltest Du selbst zusammenbasteln können.
Gruß R
Code: Alles auswählen
Sub getDatafromFile
Dim FileProperties(2) As New com.sun.star.beans.PropertyValue
os_document=thiscomponent'Zieldokument
MyDialog=createunoservice("com.sun.star.ui.dialogs.FilePicker") 'Dialog zur Auswahl des Quelldokumentes erzeugen
MyDialog.appendFilter("Quelldatei","*.ods")
myDialog.displaydirectory="c:\"
if mydialog.execute= 0 then 'Dialog zur Auswahl des Quelldokumentes starten
exit sub
endif
Url_quelle=MyDialog.Files(0)'Dateipfad zur Quelldatei
'Ladeparameter Quelldatei vorgeben
FileProperties(0).Name = "FilterName"
FileProperties(0).Value ="scalc: Text - txt - csv (StarOffice Calc)"
FileProperties(1).Name = "USE_CONFIG"
FileProperties(1).Value ="3"
FileProperties(2).Name = "Hidden" 'versteckt
FileProperties(2).Value = True
oq_document = StarDesktop.loadComponentFromURL(Url_quelle, "_blank", 0, FileProperties())'Quelldokument versteckt laden
for i=1 to 6 'betroffene Tabellenblätter, per Index(-1) heißt Tabelle 2 bis 7
if i=1 then' Wenn Tabelle2
orange_string="B10:B20"
else'Sonst (Tabelle3 bis Tabelle7)
orange_string="C10:C20"
endif
oq_sheet=oq_document.sheets(i)'Quelltabelle
os_Sheet=os_document.sheets(i)'Zieltabelle
oq_range=oq_sheet.getCellRangeByName(orange_string)'Quellbereich festlegen
oq_array=oq_range.getDataArray()'Daten aus Quellbereich lesen
os_range=os_Sheet.getCellRangeByName(orange_string)'ZielBereich festlegen
os_range.setDataArray(oq_array)'Daten in Zielbereich schreiben
next i
oq_document.close (-1)'Quelldokument schließen
End Sub
- Dateianhänge
-
- Senke2.ods
- (10.9 KiB) 640-mal heruntergeladen
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Daten aus anderer calc-Datei in die aktuelle übertragen
Hallo R!
Vielen Dank noch für deine Hilfe. Funktioniert sehr gut!
Danke, Woatze
Vielen Dank noch für deine Hilfe. Funktioniert sehr gut!
Danke, Woatze
Re: Daten aus anderer calc-Datei in die aktuelle übertragen
... kaum wartet man 3 Wochen, zack, schon ist eine Antwort da ...
R
R
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO
Re: Daten aus anderer calc-Datei in die aktuelle übertragen
... wenn dann der Februar in Datei 1 auf Blatt 4 usw. liegt, hilft ein bisschen Nachdenken ...Elbwurm hat geschrieben:In Datei 1 ist der Januar das Arbeitsblatt 3 und in Datei 2 ist der Januar Arbeitsblatt 4
Wie kann ich es bewerkstelligen das Ich aus Datei 1 den Januar in Datei 2 kopieren kann?
Die Zellbereiche sind immer gleich, D7:J37
Das gilt für jeden Monat.
Ich möchte also die Zellbereiche D7:D37 von Januar bis Dezember aus Datei 1 in Datei 2 kopieren.
Ist soetwas irgendwie umsetzbar?
Code: Alles auswählen
Sub getDatafromFile
Dim FileProperties(2) As New com.sun.star.beans.PropertyValue
os_document=thiscomponent'Zieldokument
MyDialog=createunoservice("com.sun.star.ui.dialogs.FilePicker") 'Dialog zur Auswahl des Quelldokumentes erzeugen
MyDialog.appendFilter("Quelldatei","*.ods")
myDialog.displaydirectory="c:\"
if mydialog.execute= 0 then 'Dialog zur Auswahl des Quelldokumentes starten
exit sub
endif
Url_quelle=MyDialog.Files(0)'Dateipfad zur Quelldatei
'Ladeparameter Quelldatei vorgeben
FileProperties(0).Name = "FilterName"
FileProperties(0).Value ="scalc: Text - txt - csv (StarOffice Calc)"
FileProperties(1).Name = "USE_CONFIG"
FileProperties(1).Value ="3"
FileProperties(2).Name = "Hidden" 'versteckt
FileProperties(2).Value = True
oq_document = StarDesktop.loadComponentFromURL(Url_quelle, "_blank", 0, FileProperties())'Quelldokument versteckt laden
for i=2 to 13 'betroffene Tabellenblätter, per Index(-1) heißt Tabelle 3 bis 14
orange_string="D7:D37"
oq_sheet=oq_document.sheets(i)'Quelltabelle
os_Sheet=os_document.sheets(i+1)'Zieltabelle'heißt Tabelle 4 (3+1) bis 15 (14+1)
oq_range=oq_sheet.getCellRangeByName(orange_string)'Quellbereich festlegen
oq_array=oq_range.getDataArray()'Daten aus Quellbereich lesen
os_range=os_Sheet.getCellRangeByName(orange_string)'ZielBereich festlegen
os_range.setDataArray(oq_array)'Daten in Zielbereich schreiben
next i
oq_document.close (-1)'Quelldokument schließen
End Sub
Gruß und viel Erfolg Rfor i=2 to 13 'betroffene Tabellenblätter, per Index(-1) heißt Tabelle 3 bis 14
orange_string="D7:D37"
oq_sheet=oq_document.sheets(i)'Quelltabelle
os_Sheet=os_document.sheets(i+1)'Zieltabelle heißt Tabelle 4 (3+1) bis 15 (14+1)
- miniKasse MMove 1.0.6 Base Videotutorial
- Windows 11: AOO, LO Linux Mint: AOO, LO