Text als Formel auswerten

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

fincher
Beiträge: 9
Registriert: Mi, 14.03.2007 10:55

Text als Formel auswerten

Beitrag von fincher »

Hallo zusammen!

Konnte leider weder in der Calc-Hilfe, in der OOo-Wiki, noch hier im Forum Infos zu meinem Problem finden - ergo muss ich euch belästigen! ;)

Kurz gesagt, möchte ich einen Text als Formel auswerten lassen. Sprich ich habe z.B. drei adjazente Zellen, deren inhalt ich verkette und dann gerne wie eine Formel behandeln lassen würde. Ich hätte mir das ganze ungefähr so vorgestellt:

Code: Alles auswählen

   |  A  | B | C |              D                 |
---+-----+---+---+--------------------------------+---
 1 | 500 | / | 2 | =WERT(VERKETTEN("=";A1;B1;C1)) |
Funktioniert aber natürlich nicht, da die Funktion WERT nur Zahlen auswertet.

Als Notlösung würde mir selbst lediglich einfallen, für jeden möglichen Operator eine eigene Bedingung zu implementieren.

Hat vielleicht jemand eine bessere Lösung für mich parat?

Vielen Dank schon mal!
fincher
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey fincher,

Als Notlösung würde mir selbst lediglich einfallen, für jeden möglichen Operator eine eigene Bedingung zu implementieren.
Nicht Notlösung - was anders wird dir gar nicht übrig bleiben. Ein Textzeichen kannst du meines Wissens nach nicht mehr in eine Operator verwandeln - bleibt also nur die Fallunterscheidung.
Selbst wenn du eine benutzerdefinierte Funktion in Basic schreibst - auch da bleibt dir nur die Fallunterscheidung.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
fincher
Beiträge: 9
Registriert: Mi, 14.03.2007 10:55

Beitrag von fincher »

Alles klar, hab's fast vermutet ...

Jedenfalls vielen Dank für die Antwort!
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Beitrag von Karolus »

Hallo Fincher

Ein relativ einfacher Workaround wäre, die Gleichung mittels:
=VERKETTEN("=";A1;B1;C1)
in die Zelle zu schreiben und dann direkt (aus der selektierten Zelle) folgendes Makro zu starten:

Code: Alles auswählen

sub TextFormat_entfernen
rem define variables
dim document   as object
dim dispatcher as object
rem get access to the document
document   = ThisComponent.CurrentController.Frame
dispatcher = createUnoService("com.sun.star.frame.DispatchHelper")
dim args1(0) as new com.sun.star.beans.PropertyValue
args1(0).Name = "NumberFormatValue"
args1(0).Value = 0
dispatcher.executeDispatch(document, ".uno:NumberFormatValue", "", 0, args1())
dim args2(0) as new com.sun.star.beans.PropertyValue
args2(0).Name = "StringName"
args2(0).Value = ThisComponent.CurrentSelection.string
dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args2())
end sub
Daneben gibts auch eine 'Auswertungs-funktion' - der zugehörige Makrocode ist aber recht umfangreich und läuft nicht in allen Fällen http://www.ooo-portal.de/index.php?modu ... Auswertung

Gruß Karo
Antworten