Formel in OpenOffice 3.3

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

schaborj
*
Beiträge: 10
Registriert: Di, 08.02.2011 21:22

Formel in OpenOffice 3.3

Beitrag von schaborj »

Hallo
Irgndwie scheint mir OOo etwas zuviel helfen zu wollen:
ich möchte per Basic-Makro folgende Formel in eine Callc Zelle schreiben:

sFormDate = "=STRGEDCOMDATE(INDIREKT(""R" & k+1 & "C" & lCol+6 & """;0);INDIREKT(""R" & k+1 & "C" & lCol+7 & """;0);INDIREKT(""R" & k+1 & "C" & lcol+8 & """;0);INDIREKT(""R" & k+1 & "C" & lCol+9 & """;0))"

Calc ist aber der anderer Meinung und ändet den Zellinhalt ab:

=STRGEDCOMDATE(indirekt("R2C27";0);indirekt("R2C28";0);indirekt("R2C29";0);indirekt("R2C30";0))

aus dem INDIREKT wird ein indirekt was natürlich dann zu einem Fehler in der Formal führt.
Wer kennt einen Weg und wie geht der, das OOo das tut, war ich gerne hätte :roll: :?:
Bodo

Mit der Jahren weiß man immer noch nicht alles, aber die Freiheit ist das höchste Gut
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Formel in OpenOffice 3.3

Beitrag von Stephan »

aus dem INDIREKT wird ein indirekt
mutmaßlich weil Du die Formel mit .Formula einträgst und keine benutzerdefinierte Funktion namens INDIREKT definiert hast, der Name der entsprechenden Tabellenfunktion ist (für .Formula) in jedem Falle INDIRECT


Gruß
Stephan
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Formel in OpenOffice 3.3

Beitrag von Karolus »

Hallo
Schreibst du in oCell.formula ? dann müsstest du die englische Form von INDIREKT nehmen , vmtl. INDIRECT ? Das wird dann automatisch in die eingestellte Lokalisierung übersetzt.

Möchtest du mit lokalisierten Funktionsnamen arbeiten schreibe in ocell.formulalocal

Ps.Benötigst du überhaupt INDIREKT wenn du dir die Zelladressen in Basic zusammen bastelst ? zb.:

Code: Alles auswählen

sFormDate = "=STRGEDCOMDATE(R" & k+1 & "C" & lCol+6 & ";R" & k+1 & "C" & lCol+7 & ";R" & k+1 & "C" & lcol+8 & ";R" & k+1 & "C" & lCol+9 & ")"

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
schaborj
*
Beiträge: 10
Registriert: Di, 08.02.2011 21:22

Re: Formel in OpenOffice 3.3

Beitrag von schaborj »

Hallo

vielen dank für die Antwort. Es war tatsächlich die Übersetzung. Es muss im Program INDIRECT heißen.
Die Art wie man in Basic eine Formeln zusammenbaut - über RC - habe ich nirgends gefunden, daher der Versich mit INDIRECT; dein Code-Hinweis macht das natürlich viel einfacher.

Also besten Dank, das waren sehr dienliche Hinweise. :?

Bodo
Bodo

Mit der Jahren weiß man immer noch nicht alles, aber die Freiheit ist das höchste Gut
schaborj
*
Beiträge: 10
Registriert: Di, 08.02.2011 21:22

Re: Formel in OpenOffice 3.3

Beitrag von schaborj »

Hallo

so jetzt habe ich die Formeln zusammengebaut. Leider funktioniert die RC-Addressierung nicht so wie gewünscht. Auch die Methode über "INDIRECT" ist nicht sehr hilfreich, da die Addressierung beim Sortieren nicht umgestellt wird.
Ich habe in einem englischem Forum einen Lösungsvorschlag gefunden, der funktioniert
http://www.oooforum.org/forum/viewtopic.phtml?t=5597
Es ist zwar ein wenig umständlich und wird auch Performance kosten, aber damit bleiben wenigstens die die Grundfunktionen der Tabelle (Kopieren Ausfüllen, etc) erhalten. Ich persönlich finde die RC Methode zur Addressierung von Row und Column mit Zahlen besser als mit Buchstaben.

Nochmals vielen Dank für die Hinweise :D
Bodo

Mit der Jahren weiß man immer noch nicht alles, aber die Freiheit ist das höchste Gut
Karolus
********
Beiträge: 7533
Registriert: Mo, 02.01.2006 19:48

Re: Formel in OpenOffice 3.3

Beitrag von Karolus »

Hallo
Vom Spaltenindex i zur Spaltenbezeichnung kommst ganz schlicht per ....sheet.getcolumns().getbyindex( i ).name

Gruß Karo
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Antworten