Date: prev next · Thread: first prev next last
2019 Archives by date, by thread · List index


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.