BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!

❤️ DANKE >><< DANKE ❤️

> KEINE WERBUNG FÜR REGISTRIERTE BENUTZER!<
Ihre Spende wird für die Deckung der laufenden Kosten sowie den Erhalt und Ausbau 🌱 des LibreOffice Forums verwendet.
🤗 Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet. 🤗

Rechenformel und Ergebnis nebeneinander anzeigen

CALC ist die Tabellenkalkulation, die Sie immer wollten.
Antworten
else
Beiträge: 1
Registriert: So 7. Feb 2021, 18:03

Rechenformel und Ergebnis nebeneinander anzeigen

Beitrag von else » So 7. Feb 2021, 18:58

Hallo,
ich steige gerade von excel 2013 auf calc um, soweit klappt der Umzug ganz gut.
Nun mein Problem:
Bisher konnte ich in Excel über eine VBA-Funktion die eingegebene Formel in der Nachbarzelle als Wert anzeigen lassen, zum Beispiel:
Eingabe Zelle A1: 1+1 Ausgabe Zelle B1: 2 (eingegebene Funktion: =RECHNEN(A1))

Dazu habe ich in excel die folgende VBA-Funktion hinterlegt:

Function RECHNEN(Zelle As Range) As Double
Application.Volatile
If Zelle <> "" Then RECHNEN = Evaluate(CStr(Replace(Zelle.Text, ",", ".")))
End Function

Die Excel-Datei kann ich in LibreOffice öffnen und im ods-Format abspeichern, die VBA-Funktion funktioniert dann aber nicht mehr.
Mir ist klar, dass die VBA-Syntax nicht einfach übertragen werden kann. Kennt jemand vielleicht eine Möglichkeit, die o.g. Funktion zu "übersetzen" und damit in calc weiterzuverwenden?

Oder gibt es in calc vielleicht schon eine passende Funktion, die bisher übersehen habe?

Vielen Dank für Eure Hilfe,
Elmar
LO 7.0.4.2(x64) Win 10 (x64)

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Rechenformel und Ergebnis nebeneinander anzeigen

Beitrag von craig » So 7. Feb 2021, 19:21

Hallo Elmar,

hier ein Beispiel inklusive der UDF:
UDF Formelausdruck.ods
(67.94 KiB) 118-mal heruntergeladen
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

Helmut_S
Beiträge: 692
Registriert: Di 9. Feb 2016, 19:27

Re: Rechenformel und Ergebnis nebeneinander anzeigen

Beitrag von Helmut_S » Mo 8. Feb 2021, 17:38

Hallo Elmar,
Bisher konnte ich in Excel über eine VBA-Funktion die eingegebene Formel in der Nachbarzelle als Wert anzeigen lassen
wenn es dir nur darum geht eine Formel als Text anzuzeigen, verstehe ich nicht wirklich, dass du dazu eine Benutzer-Funktion brauchst? In Excel 2013 gibt es doch auch die Funktion Formeltext(), die das erledigt und in LO-Calc heißt die gewünschte Funktion einfach "Formel()".
Wenn du in Zelle A1 deine Formel Z.B. 1+2 eingibst steht in A1 kein Ergebnis sondern einfach Text. Dass man einer Formel das "=" - Zeichen vorausschicken muss, müsstest du doch schon aus deiner Erfahrung mit Excel mitbekommen haben?
Gibst du in A1 ein: =1+2, steht darin das Ergebnis 3 und du kannst die Formel mit der Funktion "Formel(A1)" in einer anderen Zelle anzeigen lassen und sparst dir eine Spalte/Zelle.
Oder habe ich wieder einmal alles falsch verstanden? :roll:
Gruß Helmut
MX-Linux KDE + Linux-Mint Cinnamon

Benutzeravatar
redeagle56
Beiträge: 382
Registriert: Di 11. Jun 2013, 13:03
Wohnort: Föritztal

Re: Rechenformel und Ergebnis nebeneinander anzeigen

Beitrag von redeagle56 » Mo 8. Feb 2021, 18:37

Hallo,
ich habe es so verstanden:
Elmar will in eine Formel als Text eingeben und daneben in der Zelle soll das Ergebnis dieser
Formel
erscheinen.
Dafür gibt es meines Wissens keine Funktion in Libre Office.
Das kann eventuell nur über VBA gelöst werden (wenn überhaupt).

MfG Günter
Win.11 (x64)/ MS Office 2021 / LO 7.5.4.2 (x64)
Wenn gelöst, dann bitte Thema, im Betreff, [Gelöst] voranstellen.

craig
Beiträge: 1137
Registriert: Do 21. Apr 2016, 11:42

Re: Rechenformel und Ergebnis nebeneinander anzeigen

Beitrag von craig » Mo 8. Feb 2021, 20:34

Hallo Allerseits,

Thema:
Rechenformel und Ergebnis nebeneinander anzeigen

Diese Frage wird relativ häufig gestellt.
Nach meiner Erfahrung gibt es Listen, in denen z.B. in Spalte A
Formelausdrücke stehen, ohne vorangestelltes Gleichheitszeichen.
Wenn die Ausdrücke erhalten bleiben sollen, kann man entweder
Spalte A kopieren und ggf. per RegEx den Anfang eines jeden
Ausdrucks mit einem Gleichheitszeichen erweitern.
Oder man verwendet eine UDF (benutzerdefinierte Funktion),
welche die in Calc nicht vorhandene Funktion nachbildet.

Eine UDF wird nicht in VBA, sondern in Starbasic
auf Basis der LibreOffice-API geschrieben.

Dies habe ich mit meiner anfänglich verlinkten Datei zeigen wollen.
Hier habe ich gerade festgestellt, dass die UDF einen Fehler ausgibt:
Objektvariable nicht belegt...

Ursache dafür ist der Basic-Interpreter, welcher wohl vor dem kompletten
Laden des Dokuments aktiv wird und diese Codezeile zufrüh interpretiert:

Code: Alles auswählen

	' Referenz des aktuelle Tabellenblattes	
	oSheet=ThisComponent.CurrentController.ActiveSheet
ActiveSheet wird nicht erkannt.

Deshalb habe ich in nachfolgendem Beispiel die betreffende Zeile geändert in:

Code: Alles auswählen

	oSheet=ThisComponent.sheets().getByIndex(0)
Dies funktioniert, hat aber den Nachteil, dass die UDF nur im ersten Tabellenblatt funktioniert.

Man könnte dies auch ändern, in dem man keinen Index zur Referenzierung
angibt, sondern den betreffenden Tabellenblatt-Namen:

Code: Alles auswählen

	oSheet=ThisComponent.sheets().getByName("Tabelle1")
Hier nun die neue UDF-Datei:
UDF Formelausdruck-1.ods
(63.69 KiB) 85-mal heruntergeladen
Gruß

Craig

Nie die Sicherungskopie vergessen!

════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8

An alle, die das LibreOffice-Forum nutzen:


Bitte beteiligen Sie sich mit 7 Euro pro Monat und helfen uns bei unserem Budget für das Jahr 2024.
Einfach per Kreditkarte oder PayPal.
Als Dankeschön werden Sie im Forum als LO-SUPPORTER gekennzeichnet.

❤️ Vielen lieben Dank für Ihre Unterstützung ❤️

Antworten