Seite 1 von 1

Text als Formel auswerten

Verfasst: Di, 22.05.2007 07:43
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

Verfasst: Di, 22.05.2007 17:27
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

Verfasst: Di, 22.05.2007 20:54
von fincher
Alles klar, hab's fast vermutet ...

Jedenfalls vielen Dank für die Antwort!

Verfasst: So, 27.05.2007 23:02
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