VBA Libre Calc hilfe!

Der chaotische Hauptfaden

Moderatoren: Heaterman, Finger, Sven, TDI, Marsupilami72, duese

Antworten
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

VBA Libre Calc hilfe!

Beitrag von ch_ris »

Ich mach mal einen extra Beitrag, weiss nicht wie kurz die Frage ist.
dieser Code

Code: Alles auswählen

		aa=	"{=RGP(LN("
		bb="$C$8:$C$"+CStr(i-1)
		cc=");LN("
		dd="$D$8:$D$"+CStr(i-1)
		ee=");1;1)}"
		formel=aa+bb+cc+dd+ee
		
		RGP=Calc.getCellRangeByName("P1")
		RGP.setFormula(formel)
schreibt die Formel ordnungsgemäß in die Zelle. Das sieht so aus:
2022-12-15 16_48_32-ViskoMessung2.ots - LibreOffice Calc.png
2022-12-15 16_48_32-ViskoMessung2.ots - LibreOffice Calc.png (7.99 KiB) 926 mal betrachtet
nicht was ich will. Es sollte so aussehen:
2022-12-15 16_52_48-ViskoMessung2.ots - LibreOffice Calc.png
2022-12-15 16_52_48-ViskoMessung2.ots - LibreOffice Calc.png (7.64 KiB) 926 mal betrachtet
d.h. es sollte eine Matrix erzeugt werden.
Verwirrend ist, wenn ich die Zelle doppelklicke werden die Werte Bereiche wie erwartet umrandet,
aber erst wenn ich einen Bereich um eine Zelle verschiebe und gleich wieder zurück ohne was zu ändern,
wird nach Return drücken die Matrix erzeugt bzw die RGP Funktion ausgeführt.
ohne geschweifte Klammern hat den gleichen Effekt.

edit. oder anderweitig dran rum fummel. in der Eingabeleiste zb ein Leerzeichen einfüge
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

ein einfaches setFormular("=C8") funktioniert.
dann ist der FormulaResultType der zelle auch 1.
im obigen Fall ist er 2.
bis ich manuell gefummelt habe, dann auch 1.
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

hab jetzt mal das problem isoliert und so probiert:

Code: Alles auswählen

Rem  *****  BASIC  *****
Sub Main
	dim  aSheet,cell, range As Object
	aSheet = ThisComponent.currentcontroller.activeSheet
	range= aSheet.getCellRangeByName("g1:h5")
'Xray range
		Dim formel As String
		'formel     = "{= RGP(LN($B$1:$B$10) ; LN($A$1:$A$10) ;1;1)}"
		formel     = "= RGP(LN($B$1:$B$10) ; LN($A$1:$A$10) ;1;1)"
'Xray formel
	'aSheet.getCellByPosition(3,0).setFormula(formel)
	range.setArrayFormula(formel)
	
'formel= "=EXP(MMULT(LN($A$8) ; $A$1) + $B$1)"
'aSheet.getCellByPosition(3,5).setFormula(formel)
End Sub
also statt setFormula({=irgendwas})
setArrayFormula(=dasgleiche) auf einen ganzen Bereich:
2022-12-16 13_25_17-BugTest.ods - LibreOffice Calc.png
nope.
wenn ich die ganze Matrix markiere und den Funktions-assistenten benutze hilft das auch, der erkennts sofort.

Um auszuschließen das es an mir liegt,
wer mag möge das doch mal bei sich versuchen:

edit. ja, ist die aktuelle 7.4.3.2 (in der Hoffnung das es hülfe installiert)
Dateianhänge
BugTest.ods
(10.48 KiB) 13-mal heruntergeladen
Zuletzt geändert von ch_ris am Fr 16. Dez 2022, 14:35, insgesamt 2-mal geändert.
Benutzeravatar
Finger
Administrator
Beiträge: 7392
Registriert: Di 12. Jun 2012, 20:16
Kontaktdaten:

Re: VBA Libre Calc hilfe!

Beitrag von Finger »

Uh, meine Version ist zu alt dafür.....
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

Trotzdem danke für den Versuch.
hab so viel probiert....
hab das Gefühl ich renne von einem Catch22 zum nächsten, ich reg mich schon gar nicht mehr auf.
es will scheinbar einfach nicht, und erfindet eine Ausrede nach der anderen.
Benutzeravatar
Spike
Beiträge: 2486
Registriert: Mi 15. Jul 2015, 08:05

Re: VBA Libre Calc hilfe!

Beitrag von Spike »

Es ist länger her, dass ich das intensiver genutzt habe. Was mir auffällt sind die geschweiften Klammern schon im ersten Post - muss das so? Das Argument ist mit der Funktion doch auch ungeklammert gültig...
Oder ist das Syntax, die ich nicht auf dem Schirm habe?
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

Das ist eine Array Syntax, heißt das erstreckt sich über mehrere Zellen.
2022-12-16 13_53_56-Funktionsassistent.png
also ja, so oder so ähnlich? soll das
Benutzeravatar
Spike
Beiträge: 2486
Registriert: Mi 15. Jul 2015, 08:05

Re: VBA Libre Calc hilfe!

Beitrag von Spike »

(Facepalm)
Ups. Das war dann ja wohl nix... Sorry.
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

nö wieso. alles ist möglich.
ich hab die abstrusesten Vorschläge gefunden. wie Leerzeichen hinterm =
was alles nur denn zuständigen event feuert.
frage ist warum passiert der nicht, oder läuft ins leere. und, ist das nur bei mir so.

wenn mehrere das auch so feststellten,
dann könnte man einen bug melden.
aber vorher will ich die nicht belästigen.
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

oder, ihr könntet auch nur den Basic Code benutzen,
in einer eigenen Datei. Sollte ziemlich abwärts kompatibel sein.
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

Eigentlich soll die Datei und das Skript unter Linux laufen, auf dem Werkstatt Rechner.
Verhält sich hier anders unter der Version 6.xx.
Noch unbequemer, hier muss ich den Funktionsassistenten aufrufen und die Formel ändern aka Leerzeichen entfernen damit das ausführt.
Ich denke das ist kein VBA Problem, eher ein allgemeines Isso.
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

Übrigens, nur der Vollständigkeit halber,
im englischen lautet die Funktion nicht RGP() sondern LINEST().
An so was kann der Kopf zerbrechen. :roll:
Benutzeravatar
Bastelbruder
Beiträge: 11481
Registriert: Mi 14. Aug 2013, 18:28

Re: VBA Libre Calc hilfe!

Beitrag von Bastelbruder »

Weil ich mich im Frühjahr auch mit der deutschen OO-shice rumquälen durfte, hab ich irgendwann eine Übersetzungstabelle gefunden die laut Einleitung irgendwo vergessen wurde. Im www finde ich die Datei momentan nicht, deshalb

hier: fingers-welt.de/imghost/up/20221222_1322__78-94-100-93_Office-Funktionende-en Übersetzungstabelle.jpg
Irfan kann das .pdf auch ohne Umbenennen öffnen.

Die jedem Softie bekannte Lookuptable hat bei uns gefälligst Verweis zu heißen. Und die LUT funktioniert bloß wenn ihre Einträge sortiert sind ...
ch_ris
Beiträge: 3029
Registriert: Mo 30. Nov 2015, 10:08

Re: VBA Libre Calc hilfe!

Beitrag von ch_ris »

Ick löse uff.
ENDLICH! hab ich's.

Code: Alles auswählen

' rem RGP  = Calc.getCellRangeByName("P1")
RGP  = Calc.getCellRangeByName("P1:Q5")
formel = "die formel ohne geschweifte Klammern"
'rem RGP.setFormula(formel)
RGP.setArrayFormula(formel)
setArrayFormula auf den ganzen Zell Bereich fügt die Matrix Klammern hinzu,
und das Ergebnis wird sofort berechnet.

herausgefunden hab ich das von ganz von allein, mit Zufall und Xraytools (quasi debugger, der alle Eigenschaften und Methoden auflistet).
Das doofe Internetz incl. aller offiziellen Doku war null hilfreich.

edit. ich seh grad das hab ich doch oben schon probiert :cry:
es muss am kürzlichen Update auf 7.5.3.2 liegen
bin gespannt auf Linux :roll:
Antworten