Am 27.07.2018 um 10:59 schrieb OoOHWHOoO:
Das Makro (s.u.)
[1] fügt nach der 2. Zeile eine Zeile ein.
[2] kopiert die Inhalte der 2. Zeile in die neu eingefügte Zeile.
Vorsicht; wenn in der 2. Zeile Verweise auf andere Zeilen (z.b. auf die
ursprüngliche Zeile 3, jetzt Zeile 4; passiert so aber auch mit jeder
beliebigen andern Zeile) stehen sollten, fällst du damit auf die
Schnauze. Denn du kopierst den jetzigen Link von z. B. 2 auf 4 nach 3,
von wo aus er natürlich ebenfalls 1 Zeile weiter als ursprünglich
gedacht (d. h. also nach 5 statt 4) verweist, usw.
Einen einfachen COPY-Befehl für Zeilen gibt es offensichtlich nicht in
Makro Basic ( http://www.dannenhoefer.de "7.4.5 Wie kann man Zeilen
oder
Spalten kopieren ?" ).
Jein; man kann ihn einfach aufzeichnen. Zur Demonstration füll mal ein
leeres Blatt mit folgenden Werten (A1-E8):
Zeile Buchstabe Buchstabe Text Link
2 A f Anton =D3
3 B h Berta =D4
4 C i Charlotte =D5
5 D j Annette =D6
6 E k Anna =D7
Doris
Als Makro schreibst du (das ist ein bisschen aufgepimpft, aber im
Prinzip nix anderes als "Extras => Makros => Aufzeichnen => <Markieren
des Bereichs A1:ZZ1> => Kopieren => <Rechtsklick auf Zeilenkopf von
Zeile 2> => Zeilen einfügen => <Rechtsklick auf Zeilenkopf von Zeile 2>
=> Inhalte Einfügen => <alles aus bis auf [X] Zahlen, [X] Formeln, [X]
Formate>"; unglücklicherweise zeichnen Makros nicht Plain Basic auf,
sondern UNO-Funktionen, und die sind leider nirgends vernünftig
dokumentiert; kann man also de Fakto nur per Makro-Aufzeichnen
verwenden):
sub CopyXXX
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 = "ToPoint"
args1(0).Value = "$A$5:ZZ5"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem
--------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
rem
--------------------------------------------------------------------
args1(0).Name = "ToPoint"
args1(0).Value = "$A$2"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem
--------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:InsertRows", "", 0, Array())
rem
--------------------------------------------------------------------
dim args4(5) as new com.sun.star.beans.PropertyValue
args4(0).Name = "Flags"
args4(0).Value = "VFT"
args4(1).Name = "FormulaCommand"
args4(1).Value = 0
args4(2).Name = "SkipEmptyCells"
args4(2).Value = false
args4(3).Name = "Transpose"
args4(3).Value = false
args4(4).Name = "AsLink"
args4(4).Value = false
args4(5).Name = "MoveMode"
args4(5).Value = 4
dispatcher.executeDispatch(document, ".uno:InsertContents", "", 0,
args4())
end sub
rem ====
Btw, das "VFT" im letzten Arrray stellt die Flags dar, die bestimmen,
was genau kopiert werden soll:
V = Value
F = Formula
T = Format
D. h. das "V" müsste für den echten Einsatz dann vermutlich raus. Was
die entsprechenden Parameter für andere Optionen wie z. B. Datum o. ä.
wären, müsstest du per Makro-Aufzeichnen ausprobieren.
Und statt A5:ZZ5 suchst du dir die Zeile bzw. den Bereich deines
größten
Vertrauens [tm].
Wolfgang, UNO hassend (weil da nix, aber auch wirklich nix *vernünftig*
dokumentiert ist. Paradoxerweise /sind/ die einzelnen Methoden und
Parameter usw. ja durchaus dokumentiert, aber um diese Dokus zu
/finden/, musst du /vorher/ schon genau /wissen/, wie der Befehl und
seine übergeordneten Objekte (und deren übergeordneten Objekte usw.)
heißen, welche Parameter er hat (d. h. welche Parameterkombination du
verwenden möchtest), usw.; nur, wenn du das /eh/ schon alles weißt,
brauchst du auch keine Dokumentation mehr; völlig bescheuert :-((( )
--
Durch Donald Trump ist mir endgültig klar geworden: Es ist
nicht der Turm von Pisa, der schief steht, es ist die Welt!
--
Liste abmelden mit E-Mail an: users+unsubscribe@de.libreoffice.org
Probleme?
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy