Seite 1 von 1

Zellinhalt in ein Argument im Makro verwenden

Verfasst: Di 28. Feb 2023, 19:35
von ChrWelsch
Hallo zusammen,
leider verfüge ich nicht über Programmierkenntnisse und hoffe, ich bin hier im Calc-Bereich richtig.
In der Vergangenheit hatte ich mir das Gerüst mit der Makroaufzeichnung gestellt - in der Tabelle gespeichert und dann meine veränderlichen Bereiche aus den Zellen mit den vorhanden Funktionen geholt. Klappt bei den alten Versionen von Calc bis heute alles prima.
Nun muss ich (leider) modifizieren. Ich habe z.B. meinen Kopierbereich in Zelle D80 (z.B. $A$26..$H$28).
Wie bekomme ich meinen Zellinhalt zwischen die Hochkommatas als Value für args1?
Danach sollte ich weiterkommen ... hoffe ich ....
Danke vorab

Auszug aus sub1
REM ***** BASIC *****
rem ----------------------------------------------------------------------
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "ToPoint"
args1(0).Value = "$D$80"
dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args1())
rem ----------------------------------------------------------------------
dispatcher.executeDispatch(document, ".uno:Copy", "", 0, Array())
end sub

Re: Zellinhalt in ein Argument im Makro verwenden

Verfasst: Di 28. Feb 2023, 20:01
von mikele
Hallo,
im Bereich Programmierung wäre es besser ...
Um eine sinnvolle Antwort zu geben, wäre es doch besser, was dein eigentliches/gesamtes Ziel ist.
Zunächst wäre es sinnvoll, dass der Bereich in D80 im richtigen Syntax $A$26:$H$28 angegeben ist.

Re: Zellinhalt in ein Argument im Makro verwenden

Verfasst: Di 28. Feb 2023, 20:03
von karolus
Hallo
Du solltest zuallererst den aufgezeichneten Code wegwerfen.
Dann kannst du mal schauen ob du daß mit Hilfe von Dannenhöfers starbasicfaq selbst schaffst, und hier bei Bedarf nochmals konkrete Fragen stellen.

Re: Zellinhalt in ein Argument im Makro verwenden

Verfasst: Mi 1. Mär 2023, 00:52
von ChrWelsch
Danke erstmal für die schnellen Antworten - der Syntaxfehler war ein Schreibfehler hier im Text.
Mal ein kurzer Roman zum Verständnis:
Wir haben hier vor über 35 Jahren (1986) mit Lotus 1-2-3 von IBM angefangen und sind über OpenOffice bei LibreOffice gelandet.
Mit Tabellen und Funktionen wurde praktisch die gesamte Abwicklung aufgebaut und ständig erweitert und komplex vernetzt. Auch "Ausflüge" in Datenbanken (DataEase, Dbase, Paradox, SQL) waren dabei. Rückrad unserer Bude blieb immer die "olle Tabelle" bei allen Modetrends und Totgesagten.
Nurmal so zum Nachdenken: Wir haben für drei Netze Strippen gezogen, da keiner damals wußte, ob Token Ring, ArcNet oder Ethernet sich durchsetzen wird. Aus heutiger Sicht natürlich Schwachsinn. Zwischenzeitlich sind viele gepriesene Hypes in der Versenkung verschwunden.
Wir haben hier noch Software aus Anfang der 1990er laufen, da dort alles drin ist, was wir brauchen und nutzen - viel wurde mit neuen Versionen aufgebläht - mit Erweiterungen und verkomliziert (z.B. ACAD, COREL) - manchmal ist weniger mehr - denn man muss es auch bedienen können. Da sind selbst Laien schnell angelernt und zufrieden mit sich selbst, da sie in kurzer Zeit selbstständig klasse Ergebnisse herstellen können. In einen Batch ist fixer eine Zeile eingebaut als in einen Quellcode ... und der ganze Sumps wird in Tabellen verwaltet. Deswegen bleiben wir aus den Erfahrungen dabei und führen Änderungen nur sehr behutsam ein. Never stop a running system ...
PS. SQL-Datenbanken haben wir dahinter liegen - und nein - von der Sicherung mit Streamer sind wir auch schon weg ... also nicht ganz "oldschool" ...

Die wesentlichen Steuerelemente (z.B. Kopierbereich, Zielzelle, Dateiname für Export, Fertigungszeit etc.) werden in der Tabelle mit Formeln und Funktionen (z.B. oft mit =verketten("";"")) erzeugt. Wir haben da ein paar feste Regeln noch vom Papierblatt kommend. So beginnt der Kopierbereich immer auf $A$26 und endet in Zeile 77. Der Bereich steht immer auf $D$80. Die Zielzelle (oben links) steht immer auf $D$81. Da dies ein Kernpunkt der Verarbeitung ist wollte ich das erstmal probieren bevor wir da in die Tiefe gehen und modifizieren.
Ich werde mich dann mal bei der Programmierung umsehen und in der FAQ.