🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

eine writer-Tabelle per Makro auswählen, kopieren und in einem anderen Dokument einfügen

Alles zur Programmierung im LibreOffice.
Antworten
launcher
Beiträge: 2
Registriert: So 18. Jun 2023, 13:37

eine writer-Tabelle per Makro auswählen, kopieren und in einem anderen Dokument einfügen

Beitrag von launcher » So 18. Jun 2023, 19:29

Hallo Leute,
ich will aus einem writer-Textdokument heraus eine Tabelle, die sich in einem anderen writer-Textdokument befindet, auswählen (z.B. objTabelle = ThisComponent.getTextTables().getByName("Tabelle2"))
diese dann kopieren (z.B. über das Clipboard oder dipatcher dispatcher.executeDispatch(myNewDoc, ".uno:Copy", "", 0, objTabelle))
und dann im Ausgangsdokument einfügen.
Zwar kann ich das objTabelle als Objekt erfolgreich identifizieren und ansprechen (durch obigen Befehl), aber nicht in Gänze kopieren.
Kann mir da jemand helfen?

mikele
* LO-Experte *
Beiträge: 1932
Registriert: Mo 1. Aug 2011, 20:51

Re: eine writer-Tabelle per Makro auswählen, kopieren und in einem anderen Dokument einfügen

Beitrag von mikele » Mo 19. Jun 2023, 09:21

Hallo,
bei Andrew Pitonyak
https://www.prooo-box.org/live/dokument ... eutsch.pdf
findet sich folgender Code

Code: Alles auswählen

Sub CopyNamedTableToEndUsingTransferable(sName As String)
Dim oTable 'Die zu kopierende Tabelle
Dim oText 'Das Textobjekt des Dokuments
Dim oVCursor 'Der aktuelle Viewcursor
Dim o 'Übertragbarer Content der aktuellen Auswahl
oVCursor = ThisComponent.CurrentController.getViewCursor()
oText = ThisComponent.getText()
If Not ThisComponent.getTextTables().hasByName(sName) Then
MsgBox "Oh, das Dokument enthält nicht die Tabelle " & sName
Exit Sub
End If
oTable = ThisComponent.getTextTables().getByName(sName)
REM Platziert den Cursor an den Anfang der ersten Zelle.
REM So simpel!
ThisComponent.CurrentController.select(oTable)
oVCursor.gotoEnd(True) 'Bewegt den Cursor an das Ende der aktuellen Zelle.
oVCursor.gotoEnd(True) 'Bewegt den Cursor an das Ende der Tabelle.
o = ThisComponent.CurrentController.getTransferable()
REM Setzt den Cursor an das Endes des Dokuments und fügt die Tabelle ein.
oVCursor.gotoRange(oText.getEnd(), False)
ThisComponent.CurrentController.insertTransferable(o)
End Sub
Gruß,
mikele

launcher
Beiträge: 2
Registriert: So 18. Jun 2023, 13:37

Re: eine writer-Tabelle per Makro auswählen, kopieren und in einem anderen Dokument einfügen

Beitrag von launcher » Mo 19. Jun 2023, 17:05

Super, Danke!
Es ist so einfach, wenn man weiß, wies geht...
Auch danke für den Link zu Andrew Pitonyak, den kannte ich auch nicht.


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten