BITTE helfen Sie uns HEUTE mit einer SPENDE
Helfen Sie das LibreOffice Forum zu erhalten!
> 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
Rechenformel und Ergebnis nebeneinander anzeigen
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
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)
Re: Rechenformel und Ergebnis nebeneinander anzeigen
Hallo Elmar,
hier ein Beispiel inklusive der UDF:
hier ein Beispiel inklusive der UDF:
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
Re: Rechenformel und Ergebnis nebeneinander anzeigen
Hallo Elmar,
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?
Gruß Helmut
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()".Bisher konnte ich in Excel über eine VBA-Funktion die eingegebene Formel in der Nachbarzelle als Wert anzeigen lassen
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?
Gruß Helmut
MX-Linux KDE + Linux-Mint Cinnamon
- redeagle56
- Beiträge: 382
- Registriert: Di 11. Jun 2013, 13:03
- Wohnort: Föritztal
Re: Rechenformel und Ergebnis nebeneinander anzeigen
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
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.
Wenn gelöst, dann bitte Thema, im Betreff, [Gelöst] voranstellen.
Re: Rechenformel und Ergebnis nebeneinander anzeigen
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:
ActiveSheet wird nicht erkannt.
Deshalb habe ich in nachfolgendem Beispiel die betreffende Zeile geändert in:
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:
Hier nun die neue UDF-Datei:
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
Deshalb habe ich in nachfolgendem Beispiel die betreffende Zeile geändert in:
Code: Alles auswählen
oSheet=ThisComponent.sheets().getByIndex(0)
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")
Gruß
Craig
Nie die Sicherungskopie vergessen!
════════════════════════════════════════════════
WIN 10 Pro 64-Bit • LO 7.4.5.1 (x64) • AOO 4.1.8
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 ❤️