BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

basic Makro welches einen bestimmten Datenbereich aus einem Dokument in ein anderes einfügt

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
Hannes1966
Beiträge: 1
Registriert: Do 1. Jun 2023, 15:42

basic Makro welches einen bestimmten Datenbereich aus einem Dokument in ein anderes einfügt

Beitrag von Hannes1966 » Do 1. Jun 2023, 15:48

Hallo,

ich möchte einen bestimmten Datenbereich aus einem Dokument in ein anderes einfügen, leider gelingt mir dies nicht. Bekomme in der Zeile "Daten in den Zielbereich kopieren" immer einen Fehler. Kann mir jemand helfen?

Grüße Hannes


Sub DatenEinfuegen()
Dim QuellDok As Object
Dim ZielDok As Object
Dim QuellTabelle As Object
Dim ZielTabelle As Object
Dim DatenBereich As Object
Dim ZielZeile As Long

' Pfad und Dateiname der Quelldatei
Dim quellDatei As String
quellDatei = "C:\Users"

' Pfad und Dateiname der Zieldatei
Dim zielDatei As String
zielDatei = "C:\Users\"

' Öffnen der Quelldatei
QuellDok = StarDesktop.loadComponentFromURL(ConvertToURL(quellDatei), "_blank", 0, Array())

' Öffnen der Zieldatei
ZielDok = StarDesktop.loadComponentFromURL(ConvertToURL(zielDatei), "_blank", 0, Array())

' Festlegen der Quelltabelle
QuellTabelle = QuellDok.Sheets(0)

' Festlegen der Zielzeile, in die die Daten eingefügt werden sollen
ZielZeile = 1

' Festlegen der Ziel-Tabelle
ZielTabelle = ZielDok.Sheets(0)

' Festlegen des Datenbereichs, der in die Ziel-Tabelle eingefügt werden soll
DatenBereich = QuellTabelle.getCellRangeByName("A1:B5")

' Daten in den Zielbereich kopieren
ZielTabelle.getCellByPosition(0, ZielZeile).setDataArray(DatenBereich.getDataArray())

' Schließen der Dokumente
QuellDok.close(True)
ZielDok.close(True)
End Sub

Benutzeravatar
karolus
Beiträge: 2170
Registriert: Fr 10. Dez 2010, 10:01

Re: basic Makro welches einen bestimmten Datenbereich aus einem Dokument in ein anderes einfügt

Beitrag von karolus » Do 1. Jun 2023, 17:39

Hallo

siehe Kommentare im Code

Code: Alles auswählen

Sub DatenEinfuegen()
Dim QuellDok As Object
Dim ZielDok As Object
Dim QuellTabelle As Object
Dim ZielTabelle As Object
Dim DatenBereich As Object
Dim ZielZeile As Long

' Pfad und Dateiname der Quelldatei'
Dim quellDatei As String
quellDatei = "C:\Users"         '#### hier fehlt offensichtlich der Dateiname #####'

' Pfad und Dateiname der Zieldatei'
Dim zielDatei As String
zielDatei = "C:\Users\"       '###### hier ebenso #####'

' Öffnen der Quelldatei
QuellDok = StarDesktop.loadComponentFromURL(ConvertToURL(quellDatei), "_blank", 0, Array())

' Öffnen der Zieldatei
ZielDok = StarDesktop.loadComponentFromURL(ConvertToURL(zielDatei), "_blank", 0, Array())

' Festlegen der Quelltabelle
QuellTabelle = QuellDok.Sheets(0)

' Festlegen der Ziel-Tabelle
ZielTabelle = ZielDok.Sheets(0)

' Festlegen des Datenbereichs, der in die Ziel-Tabelle eingefügt werden soll
DatenBereich = QuellTabelle.getCellRangeByName("A1:B5")

' Daten in den Zielbereich kopieren
' ##### der Zielbereich muss die passende Größe haben !!!! #########
ZielTabelle.getCellRangeByName("A1:B5").setDataArray(DatenBereich.getDataArray())

' Schließen der Dokumente …
QuellDok.close(True)
ZielDok.store() ' ##### …aber das Speichern nicht vergessen #####
ZielDok.close(True)
End Sub
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO7.6.3.2 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten