Hallo,
vielen Dank für die Hilfe. Das Makro funktioniert, nachdem ich die erste
Definition mit oQuellZelle as string weggelassen habe. Zuvor kam eine
Meldung, dass es bereits definiert ist. Aus meiner Sicht ist das ein
sehr hilfreiches Makro. Ist es möglich, dieses Makro im Wiki zu
veröffentlichen, wie soll die Namensnennung sein, wenn es erlaubt wird,
damit es von mehr Leuten genutzt werden kann. Ich kann versuchen zu
erklären für was es genutzt werden kann.
Gruß
Tim
Am 30.12.2019 um 19:34 schrieb Thomas Krumbein:
Hey Tim,
wow... trotz Deiner Beschreibung verstehe ich wohl nicht so richtig,
was genau Du willst. Ich versuche es mal in einfachen Worten zusammen
zu fassen:
In Deiner Tabelle 1 (sheet(0)) steht in der Zelle B2 zum Beispiel eine
Zelladresse wie "d36"?
Nun möchtest Du diese auslesen und in den Zielbereich (bei Dir die
Zelle "D1") eintragen?
Nun, das wäre ziemlich einfach. Eine Zelle kann nur einen der drei
Typen aufnehmen: Texte (Strings), Werte oder Formeln. Eine Zelladresse
wäre immer ein Text ("D36") - also auslesen und der Zeilzelle
zuweisen. Fertig.
Den Umweg über einen Datenarray kannst Du dir hier absolut sparen -
das würde Dir nur helfen, wenn Du mehrere Werte eines
zusammenhängenden Bereiches in einen anderen - wohlgemerkt gleich
großen - Bereich kopieren möchtest.
Würde also reichen:
sub KopieUndInsertDaten
dim oTab as variant, oZielzelle as Variant, oQuellZelle as string
For i = 1 to 1 '???
oTab=thisComponent.sheets(0)
oQuellZelle=oTab.getCellRangeByName("B2")
oCopyZelle=oTab.getCellRangeByName(oQuellZelle.string)
oZielZelle = oTab.getCellRangeByName("D1")
REM da der Inhalt wahrscheinlich nicht sicher bekannt ist, verwende
Formula - das passt immer
oZielZell.formula = oCopyZelle.formula
Next i
end sub
Wahrscheinlich willst Du mit der Schleife über die einzelnen Zellen
iterieren - geht natürlich, so würde dann eben statt "B2" dort stehen
"B" & i ...oder so
viele Grüße
Thomas
Am 30.12.2019 um 18:42 schrieb Tim Herb:
Hallo,
ich nutze viel LibreOfficeCalc und ich möchte hierin auch Makros nutzen.
Ich bin auf der Suche nach einer Möglichkeit, dass ich die Zellen, die
kopiert werden sollen in einer Zelle im Tabellenblatt stehen habe.
Hierzu habe ich die Variable oZelle im untenstehenden Makro und diese
soll aus den Bereich von B1 bis B5 den Wert von B2 auslesen. In B2 auf
dem Tabellenblatt steht der Name der Zelle die kopiert werden soll und
die dann in D1 eingefügt werden soll. Beim ausführen des Makros erhalte
ich eine Fehlermeldung. Wie muss ich das Makro anpassen, damit es
funktioniert. Gibt es in LibreOffice eine Möglichkeit, die Zelle die
kopiert werden soll in einer Zelle im Tabellenblatt stehen zu haben. In
VBA gibt es die Möglichkeit mithilfe von Cells, die Zelle anzugeben, aus
der der Wert der Variablen stammt.
sub KopieUndInsertDaten
dim aData()
dim oTab as variant,oBereich as Variant,oZielbereich as Variant
For i = 1 to 1
oTab=thisComponent.sheets(0)
oZelle=ThisComponent.CurrentController.ActiveSheet.getCellRangeByName("B1:B5").getCellByPosition(1,1).Value
oBereich=oTab.getCellRangeByName(oZelle)
aData=oBereich.getDataArray()
oZielbereich=oTab.getCellRangeByName("D1")
oZielbereich.setDataArray(aData)
Next i
end sub
Es würde mich freuen, wenn mir hier jemand helfen kann.
Vielen Dank
Gruß
Tim
--
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
Context
Privacy Policy |
Impressum (Legal Info) |
Copyright information: Unless otherwise specified, all text and images
on this website are licensed under the
Creative Commons Attribution-Share Alike 3.0 License.
This does not include the source code of LibreOffice, which is
licensed under the Mozilla Public License (
MPLv2).
"LibreOffice" and "The Document Foundation" are
registered trademarks of their corresponding registered owners or are
in actual use as trademarks in one or more countries. Their respective
logos and icons are also subject to international copyright laws. Use
thereof is explained in our
trademark policy.