🙏 Helfen Sie jetzt mit, unser LibreOffice Forum zu erhalten! 🙏
Mit Ihrer Spende sichern Sie den Fortbestand, den Ausbau und die laufenden Kosten dieses Forums. 🌱

🍀 Jeder Beitrag zählt – vielen Dank für Ihre Unterstützung!🍀

❤️ DANKE >> << DANKE ❤️

>> Dank Ihrer Unterstützung -> Keine Werbung für alle registrierten LibreOffice-Forum User! <<
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Spalten einer Selektion auslesen

Alles zur Programmierung im LibreOffice.
balu
* LO-Experte *
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Spalten einer Selektion auslesen

Beitrag von balu » Sa 7. Mai 2016, 21:44

Ich will kein Programmierer für Open Office werden [...]
So eine Aussage kann mann in zwei Richtungen Interpretieren.

1.
Du willst kein Programmierer sein/werden der für die Programmierung des Office-Paket LibreOffice zuständig ist.
Das will ich auch nicht. Ich bin auch nur ein Anwender des Office-Paket.


2.
Und das folgende haben die meisten freiwilligen Helfer schon des öfteren, jedoch in leicht abgewandelter Form gelesen (quasi so wie Du es geschrieben hast).

Habe keine Lust dazu mich mit der StarBasic Programmierung intensiver zu beschäftigen. Habe dafür keine Zeit.

Mit anderen Worten. Es wird ein Dummer gesucht der die Erstellung eines Makros übernimmt.

[...] habe meine Makrosammlung mit dem Makrorecorder zusammengebaut (angepaßt) und will meine Büroarbeiten mit OO erledigen.
Wie Du wohl schon selber feststellen musstest, kommt man halt mit dem Recorder nicht sehr weit und man MUSS sich mit der StarBasic Programmierung befassen, wenn man sein Wunschziel erreichen will.



sZellAdresse = "A1:B5"
.getCellRangeByName( sZellAdresse )

schreibt.
Da ein String in Basic immer ein Text ist, unterliegt er keinen mathematischen Regeln mit dem man rechnen kann. Oder weißt Du was dabei rauskommt wenn man Wasser, Wärme und Geld miteinander multipliziert und anschließend daraus die 2 Wurzel zieht?
Das wird nicht gehen, da die Wörter "Wasser, Wärme und Geld" String (Text) sind.
++++++++++++++++++++++++++++++++++++++++++
ist das E die Lösung ?
Nein! Natürlich ist das nicht die Lösung!
Aber daran sieht man wieder das Du das geschriebene Wort einfach nicht verstehen willst, und das Du dich nicht mit den Antworten die dir gegeben werden richtig befasst.

Wie oft hatte ich dich auf den Thread: CALC: Makro nach Bedarf starten aufmerksam gemacht?

Und das Ergebnis sehen wir hier nun mal wieder. Du übersiehst einfach den Hinweis. Du kommst nicht mal auf die Idee den Link in meinem ersten Beitrag anzuklickem um nachzuschauen was dort steht. Ja selbst das was ich hier jetzt von dir zitiert habe hast Du schon wieder mal vollkommen falsch interpretiert.


das wird nun wirklich niveaulos . [...]
Ich hätte ja meine jetzige Antwort anders verfassen können, aber da dein vorletzter Beitrag mit solchen Worten anfing, habe ich mir das doch anders überlegt.



Gruß
balu

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Spalten einer Selektion auslesen

Beitrag von mikele » So 8. Mai 2016, 13:50

Hallo,

ich habe lange mit mir gerungen, ob ich balu's ausführlichen Darlegungen etwas hinzufüge.
Die von dir gewünschte Antwort auf deine Frage:
ich möchte da die an die Funktion übergebene Variable(aus der oben erwöhnten Selektionsauswertung einsetzen können.
In der Form:
ganz einfache Antwortmöglichkeit:
geht so
hat balu dir bereits am 5.5. geben:
oder aber

Code: Alles auswählen

sZellAdresse = "A1:B5"
.getCellRangeByName( sZellAdresse )
Du kannst der Methode getCellRangeByName() den String deines Bereiches offensichtlich mittels Variable übergeben.
Warum du die Spalte allerdings nicht gleich aus dem selektierten Bereich nimmst oder anstelle es Bereichsnamen (mit dem sich nun wirklich schwer arbeiten lässt, wie du bemerkt hast) das rangeaddress-Objekt nimmst, mag dein Geheimnis bleiben ...
Makros zu programmieren, ohne zumindest die Grundlagen der Programmierung erlernen zu wollen, ist ein Widerspruch in sich.
Wenn du die Foren durchstöberst wirst du merken, dass hier jeder Hilfe bekommt, sei es blutiger Anfänger oder Profi! Ich habe mir einen großen Teil meines (immer noch laienhaften) Wissens in und durch die Foren erworben.

Aus einem Bereichstring (z. B., lateinisch e. g., spanisch p. e.: "'tabelle 8.5'$H$15:$BT$47") die beteiligten Spalten herauszufiltern ist schon eine kleien programmiertechnische Herausforderung. Die eigentliche Aufgabe, die selektierten Spalten zu ermitteln, hingegen (wenn man es richtig herum anfängt) eher harmlos. Damit wären wir wieder bei der Frage: " Was ist das eigentliche Ziel deines Makros?"

... und schon wurde meine Antwort (mal wieder) länger als geplant ...
Gruß,
mikele

MaximilianWe
Beiträge: 40
Registriert: So 7. Aug 2011, 22:28

Re: Spalten einer Selektion auslesen

Beitrag von MaximilianWe » Mo 9. Mai 2016, 13:30

hallo Mikele,
deine Antwort:
Aus einem Bereichstring (z. B., lateinisch e. g., spanisch p. e.: "'tabelle 8.5'$H$15:$BT$47") die beteiligten Spalten herauszufiltern ist schon eine kleien programmiertechnische Herausforderung. Die eigentliche Aufgabe, die selektierten Spalten zu ermitteln, hingegen (wenn man es richtig herum anfängt) eher harmlos. Damit wären wir wieder bei der Frage: " Was ist das ist eisr weiigentliche Ziel deines Makros?"
das ist eigentlich der Punkt. "Wenn man es richtig herum anfängt" gisdt ja schön, aber keine brauchbare Antwort. Mein Landsmann Karl Valentin sagte auch auf die Frage eines Fremden: Können Sie mir den Weg zum Bahnhof sagen" kurz "Ja" und murmelte im Weitergehen, der hält mich wohl für blöd, dass ich das als Münchner nicht wüßte.
Zum eigentlichen Ziel des Makros:
Die Tabelle enthält umfangreiche Daten, die für mathematische Projektionen als rudimentäre SAmples in ver schiedenen Gruppirungen herausgefiltert werden. Die Spalte der Sekektion bestimmt dabei sdie weitere Vorgehensweise. Natürlich kann man es auch so sagen, wie ich es laufend tat: Das Ziel ist, die erste Spalte für den weiteren Arbeitsablauf zur Verfügung zu haben.
Ist es nicht egal, wie, was ich mit dem Programm mache?
Was ich mir mit meinem Wissensstand mühsam heraulas, und wie ich das meinte, umarbeiten zu können, ist ja von mir nehrfach mit vollem Code) hier genannt worden. Was ich darauf an Antworten erhielt, waren (wie oben) die trostreichen Worte, dass so nicht , aber anders besser ginge. Nach Balu suchte ich jaa nach einem Dummen.
Man wird es mir deshalb nicht übel nehmen, wenn ich; " hier wird jedem geholfen" mit einem Schmunzeln lese.
Wir können und sollten den wirklich entsetzlichen Diskurs hier endgültig begraben. Ich habe die Tabelle so umgebaut, dass ich mit Bordmitteln des Programmes und dem, was ich mir auf diletantische Art an Makros aufgebaut habe, weiterkomme. Nicht so direkt, wie ich es wollte, aber dafür ohne das und ihn dem Umfeld, das ich hier antraf.

Max

mikele
* LO-Experte *
Beiträge: 1930
Registriert: Mo 1. Aug 2011, 20:51

Re: Spalten einer Selektion auslesen

Beitrag von mikele » Mo 9. Mai 2016, 14:54

Hallo,

du hast mich nach wie vor nicht verstanden. Die Antwort, die du erwartest, kann ich dir beim besten Willen nicht gegen. Nicht, weil ich nicht will, sondern weil ich aus deinen Angaben nicht schlau werde.
Die Lösung

Code: Alles auswählen

iErsteSpalte=Thisdocument.GetCurrentSelection.RangeAddress.startColumn
scheint dir nicht zu gefallen bzw. dein Problem zu lösen.
Die Lösung

Code: Alles auswählen

bereich="A1:B5"
iErsteSpalte=Thisdocument.Sheets(0).getCellRangeByName(bereich).RangeAddress.startColumn
ebenfalls nicht.
Hier ist der Punkt, an dem mir die Ideen ausgehen ...
Gruß,
mikele

balu
* LO-Experte *
Beiträge: 370
Registriert: Mi 1. Jun 2011, 16:21

Re: Spalten einer Selektion auslesen

Beitrag von balu » Mo 9. Mai 2016, 22:14

@Max

Es ist einfach nur traurig. Wie oft habe ich den einen bestimmten Thread erwähnt? Und Du verstehst es einfach nicht. Du willst dich ja überhaupt nicht damit auseinandersetzen. Und das Du dich nicht damit auseinandergesetzt hast sieht man ja daran, das Du nicht einmal gesagt hast:

"Hey balu. Ist ja alles ganz gut und schön. Aber ich verstehe nicht was der andere Thread hier mit meinem Problem zu tun hat."

Nicht mal annähernd ähnliche Worte hast Du formuliert. Aber irgendwelche dumme Sprüche los lassen, das geht immer bei dir. Und was haben die Sprüche dir eingebracht?

Nach Balu suchte ich jaa nach einem Dummen.
Und dabei bleibe ich auch, so lange Du mich nicht vom Gegenteil überzeugen kannst.


Aber mal schauen ob Du jetzt verstehen wirst.

In dem verlinkten und mehrfach erwähnten Thread steht folgender Code.

Code: Alles auswählen

Sub Main
    x = ThisComponent.GetCurrentSelection.AbsoluteName
    msgbox x
End Sub
Und Du weißt was dabei rauskommt. Und falls nicht, führe ihn einfach mal aus. Und achte darauf was dir in der MessageBox (msgbox) angezeigt wird.

Du müsstest eigentlich verstehen, das die Variable x eine Zelladressierung mit Tabellenblattname und Zellbereich beinhaltet.

So, und dann hatte ich dir folgenden Tipp gegeben, den Du natürlich auch nicht ausprobiert hattest.
balu hat geschrieben: Und was passiert wenn Du beispielsweise AbsoluteName weglässt?
Wenn Du das nicht verstanden hättest, hättest Du ja noch mal nachfragen können. Und wenn ein Fehler bei der Ausführung des Codes aufgetreten wäre, hättest Du das ja hier mitteilen können. Mit einer Fehlermeldung deinerseits hättest Du ja gezeigt, das Du dich mit meinen Worten auseinander gesetzt hast. Aber nein, irgendwelche blöde Kommentare sind ja wichtiger als eine Rückmeldung zu geben.

Mir können ja auch mal Fehler unterlaufen, und wenn Du mir das gesagt hättest, dann hätte ich das noch mal gegengeprüft.

Aber nun gut, kommen wir zum Ende. Habe nämlich keinen Bock mehr darauf mir irgendwelche blöde Sprüche anzuhören weder von Valentin, Goethe noch von Schiller.

Code: Alles auswählen

    oCellRange = ThisComponent.GetCurrentSelection
'auslesen der Eckpunkte  
     iErsteSpalte = oCellRange.rangeAddress.startColumn
     iErsteZeile = oCellRange.rangeAddress.startRow
     iLetzteSpalte = oCellRange.rangeAddress.EndColumn
     iLetzteZeile = oCellRange.rangeAddress.EndRow
Bin ja mal gespannt ob Du jetzt damit weiter kommst. Denn das ist genau das was Du haben wolltest.


balu


An alle, die das LibreOffice-Forum gern nutzen und unterstützen wollen:


Bitte helfen Sie uns mit 7 Euro pro Monat.
Durch Ihren Beitrag tragen Sie dazu bei, unsere laufenden Kosten für die kommenden Monate zu decken.
Unkompliziert per Kreditkarte oder PayPal.
Als ein kleines Dankeschön werden Sie im LO-Forum als SUPPORTER gekennzeichnet.



Antworten