Seite 1 von 1

Benutzter Zellbereich in Zwischenablage kopieren

Verfasst: So, 29.08.2021 10:35
von Clousi
Hallo zusammen

ich bin wieder einmal ;).

Ich würde gerne den gesamten benutzten Zellbereich des aktiven Arbeitsblattes markieren und in die Zwischenablage kopieren (um von dort händisch in einer anderen Arbeitsmappe einzufügen).

Ich habe mit meinen sehr beschränkten Basic Kenntnissen schon Einiges versucht, aber komme auf keinen grünen Zweig.

Kann mir jemand helfen? Vielen Dank im Voraus!
Clousi

MacOS BigSur
OpenOffice 4.1.10

Re: Benutzter Zellbereich in Zwischenablage kopieren

Verfasst: So, 29.08.2021 13:42
von mikeleb
Hallo,
warum per Makro? Alles markieren und kopieren sind mit wenigen Tastenkombinationen erledigt ...
Ansonsten siehe z. B. hier https://www.uni-due.de/~abi070/files/OO ... eutsch.pdf Kapitel 11.3

Re: Benutzter Zellbereich in Zwischenablage kopieren

Verfasst: So, 29.08.2021 14:04
von Stephan
ich würde das pragmatischerweise mit dem Makrorekorder aufzeichnen und also sog. dispatchercode verwenden, WEIL Du das Kopieren ohnehin sinnvollerweise per dispatcher machen musst.

Das gibt dann:

Code: Alles auswählen

sub Main
rem ----------------------------------------------------------------------
rem define variables
dim document   as object
dim dispatcher as object
rem ----------------------------------------------------------------------
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")

rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "Sel"
args1(0).Value = false

dispatcher.executeDispatch(document, ".uno:GoToEndOfData", "", 0, args1())

rem ----------------------------------------------------------------------
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "Sel"
args2(0).Value = true

dispatcher.executeDispatch(document, ".uno:GoToStart", "", 0, args2())

rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())


end sub
Vorstehender Code markiert immer den Zellbereich mit Zelle A1 als linker oberer Ecke und der Zelle die der letzten benutzten Spalte und Zeile entspricht als rechter-unterer Ecke.


Gruß
Stephan

Re: Benutzter Zellbereich in Zwischenablage kopieren

Verfasst: Di, 31.08.2021 20:53
von Clousi
Vielen Dank, Stephan. Auch das klappte auf Anhieb.
Immer wieder eine Freude ;)