eine Calcformel im Makro ausführen
Moderator: Moderatoren
eine Calcformel im Makro ausführen
Hallo Kenner und Könner
wie muss der Basic-code aussehen um eine Calcformel direkt im Makro auszuführen
und ganz speziel eine Matrixformel
zB {=MAX(H2:H8*5)}
um das Ergebnis in einer Varablen zu haben?
schonmal Danke
wie muss der Basic-code aussehen um eine Calcformel direkt im Makro auszuführen
und ganz speziel eine Matrixformel
zB {=MAX(H2:H8*5)}
um das Ergebnis in einer Varablen zu haben?
schonmal Danke
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: eine Calcformel im Makro ausführen
Hallo clag,
DAYSINMONTH => funktioniert nicht
TAGEIMMONAT => das funktioniert
Nachzulesen hier: DAYSINMONTH mit FunctionAccess funktioniert nicht.
Das ist ja jetzt nur ein Beispiel von mehreren. Bei welchen Funktionen das noch zu trifft, weiß ich so aus dem Stehgreif nicht, da ich davon keine Liste habe. Da musst Du dann im Einzelfall schon selbst mal nach suchen. Hier im Forum sind da die ein oder anderen Funktionen schon mal behandelt worden. Dein Suchbegriff in diesem Falle würde dann für dich wie folgt lauten:
FunctionAccess
Nach meinen kurzen tests find ich im Ergebnis keinen Unterschied, bei folgenden Werten in den angegeben Zellbereich.
Ich gehe jetzt in diesem speziellen Fall ausführlicher auf deine Beispielformel ein, da ich selber momentan keine Ahnung davon habe wie man im Makro eine Matrixformel erstellt. Und ferner möchte ich dich vielleicht davor bewahren dir unnütz den Kopf zu zerbrechen über ein Formelkonstrukt das so überflüssig ist, da auch anders und einfacher zu lösen.
Falls es dir aber generell um Matrixformeln im Makro geht, so kann ich dir da nicht weiterhelfen, da keine Ahnung.
Gruß
balu
Da hat ja lorbass dir schon einen passenden Link dazu gegeben. Ich muss dich aber deswegen dringend warnen, nicht alle 'englische' Funktionsnamen sind auch anzuwenden. Einige werden nämlich in 'deutsch' geschrieben. Hier mal ein Beispiel:wie muss der Basic-code aussehen um eine Calcformel direkt im Makro auszuführen
DAYSINMONTH => funktioniert nicht
TAGEIMMONAT => das funktioniert
Nachzulesen hier: DAYSINMONTH mit FunctionAccess funktioniert nicht.
Das ist ja jetzt nur ein Beispiel von mehreren. Bei welchen Funktionen das noch zu trifft, weiß ich so aus dem Stehgreif nicht, da ich davon keine Liste habe. Da musst Du dann im Einzelfall schon selbst mal nach suchen. Hier im Forum sind da die ein oder anderen Funktionen schon mal behandelt worden. Dein Suchbegriff in diesem Falle würde dann für dich wie folgt lauten:
FunctionAccess
Kannst Du mir mal bitte schön den Unterschied zwischen deiner Matrixformel und meiner erklären?und ganz speziel eine Matrixformel
zB {=MAX(H2:H8*5)}
Code: Alles auswählen
=MAX(H2:H8)*5
Code: Alles auswählen
15
6
8
1
9
30
22
Falls es dir aber generell um Matrixformeln im Makro geht, so kann ich dir da nicht weiterhelfen, da keine Ahnung.
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: eine Calcformel im Makro ausführen
Hallo Ihr
dem link von lorrbas war ich schon gefolgt und wurderte mich sehr das ich den Teil nicht selber entdeckt habe
denn bevor ich hier angefragt habe, hatte ich mich schon ne ganze Weile die Dannenhöfschen Seiten abgeklappert.
Aber da greifen wieder Mc Myrphys Gesetze:
"der Erfolg einer Suche ist direkt umgekehrt proportional zur dringlichkeit"
oder so
Aber meine Befürchtung wirklich eine Matrixformel auszuführen ist wohl nicht realisierbar
vor allem wenn es um eine ganze Spalte geht also das währen 1.048.576 Argumente!?
nee da hatte ich an eine einfachere Lösung gedacht
zB ob man die Formel als String zusammenbaut dann in eine leere Zelle schreibt die Tabelle neu berechnet,
das Ergebnis abfragt und dann die Zelle wieder leert, aber das funktioniert vermutlich auch nicht so ohne weiteres oder?
Mich würde schon sehr interessieren ob man eine Matrixformel ohne die angedachte Zellenhilfe und ohne endlose Argumente berechnen kann (wobei ich mich gerade frage wieviel Agumente sind überhaupt möglich)?
aber erst mal Danke für eure Unterstützung
dem link von lorrbas war ich schon gefolgt und wurderte mich sehr das ich den Teil nicht selber entdeckt habe

denn bevor ich hier angefragt habe, hatte ich mich schon ne ganze Weile die Dannenhöfschen Seiten abgeklappert.
Aber da greifen wieder Mc Myrphys Gesetze:
"der Erfolg einer Suche ist direkt umgekehrt proportional zur dringlichkeit"

oder so
Aber meine Befürchtung wirklich eine Matrixformel auszuführen ist wohl nicht realisierbar
vor allem wenn es um eine ganze Spalte geht also das währen 1.048.576 Argumente!?
nee da hatte ich an eine einfachere Lösung gedacht
zB ob man die Formel als String zusammenbaut dann in eine leere Zelle schreibt die Tabelle neu berechnet,
das Ergebnis abfragt und dann die Zelle wieder leert, aber das funktioniert vermutlich auch nicht so ohne weiteres oder?
Mich würde schon sehr interessieren ob man eine Matrixformel ohne die angedachte Zellenhilfe und ohne endlose Argumente berechnen kann (wobei ich mich gerade frage wieviel Agumente sind überhaupt möglich)?
aber erst mal Danke für eure Unterstützung
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: eine Calcformel im Makro ausführen
Hallo
Deine Beispiels(matrix)formel ist ein schlechtes Beispiel, weil besser darstellbar als Nicht-matrix:
Ausserdem müsstest du nichtmal in Basic dafür eine Calcfunktion ausborgen.
[edit] ups...das schrieb Balu auch schon [/edit]
Karolus
Deine Beispiels(matrix)formel ist ein schlechtes Beispiel, weil besser darstellbar als Nicht-matrix:
Code: Alles auswählen
=MAX(H2:H8)*5
[edit] ups...das schrieb Balu auch schon [/edit]
Karolus
Zuletzt geändert von Karolus am Do, 26.09.2013 13:09, insgesamt 1-mal geändert.
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: eine Calcformel im Makro ausführen
Hallo Du,
kannst Du nicht mal klar und deutlich sagen ob Du generell wissen willst wie man Matrixformeln im Makro erstellt, oder ob Du ein ganz spezielles Problem lösen willst wobei Du nicht weißt ob mit oder ohne Matrix?
Muss ich dazu noch was sagen? =>7.1.11 Wie kann man mit einem Makro eine Formel in eine Zelle eintragen?
-> Beschreibe dein aktuelles Problem
-> Erkläre wie Du es gerne lösen würdest, aber nicht genau weißt wie Du vorgehen sollst
-> hänge eine Beispieldatei hier an.
Gruß
balu
kannst Du nicht mal klar und deutlich sagen ob Du generell wissen willst wie man Matrixformeln im Makro erstellt, oder ob Du ein ganz spezielles Problem lösen willst wobei Du nicht weißt ob mit oder ohne Matrix?
Michael hat auch eine Suchfunktion eingebaut. Aber auch seine Navigationsleiste ist nicht zu verachten, falls man sie nicht zu gänze ignoriert.denn bevor ich hier angefragt habe, hatte ich mich schon ne ganze Weile die Dannenhöfschen Seiten abgeklappert.
Ist nicht dein ernst, oder?zB ob man die Formel als String zusammenbaut dann in eine leere Zelle schreibt die Tabelle neu berechnet,
das Ergebnis abfragt und dann die Zelle wieder leert, aber das funktioniert vermutlich auch nicht so ohne weiteres oder?
Muss ich dazu noch was sagen? =>7.1.11 Wie kann man mit einem Makro eine Formel in eine Zelle eintragen?
Weißt Du mein lieber, auf Grundsatzdiskussionen steh ich momentan nicht so -{denn irgendwie scheint es momentan daufhin zu steuern, da Du nix greifbares lieferst}- , da ich mich auf den Winterschlaf vorbereite. Wie wärs denn stattdessen wenn Du mal zu folgendem Verfahren überwechselst:Aber meine Befürchtung wirklich eine Matrixformel auszuführen ist wohl nicht realisierbar
vor allem wenn es um eine ganze Spalte geht also das währen 1.048.576 Argumente!?
nee da hatte ich an eine einfachere Lösung gedacht
[...]
Mich würde schon sehr interessieren ob man eine Matrixformel ohne die angedachte Zellenhilfe und ohne endlose Argumente berechnen kann
-> Beschreibe dein aktuelles Problem
-> Erkläre wie Du es gerne lösen würdest, aber nicht genau weißt wie Du vorgehen sollst
-> hänge eine Beispieldatei hier an.
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: eine Calcformel im Makro ausführen
Hallo Karolus,
ok hier die Formel die ich... ähm die Calc eigentlich hätte berechnen wollen
{=MAX(ZEILE(A1:A1048576)*NICHT(ISTLEER(A1:A1048576)))}
habe jetzt aber schon einen besseren Ersatz dafür in Form von
das ändert aber nichts an meinem grundsätzlichen Interesse zu Erfahren ob und wie man Calc Formeln in Basic umsetzen kann.
Wenn es denn überhaupt möglich ist die obige Formel als solche auszuführen würde ich mich sehr über ein Bsp-lösung freuen
edit:
ah da war der Balu schon zwischendurch
Ziel ist/war es die letzte Zelle mit Inhalt in einer Spalte zu ermitteln
ja und einen String der mit einem "=Summe(A1:A5) in eine Zelle zu schreiben ist eine Sache und
da noch geschweifte Klammern davor und hinter zu setzten auch kein Probrlm, aber das macht ja noch keine Matrixformel aus dem String, gell.
Es ist ja das "ctrl shift enter" was aus einer "normalen" eine Matrixformel macht.
Dazu habe ich noch nichts gefunden wie das in Basic ausgeführt wird.
ok hier die Formel die ich... ähm die Calc eigentlich hätte berechnen wollen
{=MAX(ZEILE(A1:A1048576)*NICHT(ISTLEER(A1:A1048576)))}
habe jetzt aber schon einen besseren Ersatz dafür in Form von
Code: Alles auswählen
x = mySheet.Columns(0).queryEmptyCells()
LastFilledRow = x(x.Count - 1).RangeAddress.StartRow
Wenn es denn überhaupt möglich ist die obige Formel als solche auszuführen würde ich mich sehr über ein Bsp-lösung freuen
edit:
ah da war der Balu schon zwischendurch
Ziel ist/war es die letzte Zelle mit Inhalt in einer Spalte zu ermitteln
ja und einen String der mit einem "=Summe(A1:A5) in eine Zelle zu schreiben ist eine Sache und
da noch geschweifte Klammern davor und hinter zu setzten auch kein Probrlm, aber das macht ja noch keine Matrixformel aus dem String, gell.

Es ist ja das "ctrl shift enter" was aus einer "normalen" eine Matrixformel macht.
Dazu habe ich noch nichts gefunden wie das in Basic ausgeführt wird.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: eine Calcformel im Makro ausführen
Hallo
Karolus
Code: Alles auswählen
ThisComponent.CurrentSelection.setArrayFormula("=MAX(ROW(A1:A1048576)*NOT(ISBLANK(A1:A1048576)))")
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
Re: eine Calcformel im Makro ausführen
Moin Karolus,
Danke für die klare Ansage
da du kein Wort zum ausführen der Formel in Basic schreibst vermute ich,
es ist nicht möglich ohne die Formel in gänze in Basic auszuführen
und es besteht zudem die Hürde mit den 1.048.576 Argumenten?
Danke für die klare Ansage

da du kein Wort zum ausführen der Formel in Basic schreibst vermute ich,
es ist nicht möglich ohne die Formel in gänze in Basic auszuführen
und es besteht zudem die Hürde mit den 1.048.576 Argumenten?
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox