eine Calcformel im Makro ausführen

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: eine Calcformel im Makro ausführen

Re: eine Calcformel im Makro ausführen

von clag » Fr, 27.09.2013 07:06

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?

Re: eine Calcformel im Makro ausführen

von Karolus » Do, 26.09.2013 21:20

Hallo

Code: Alles auswählen

ThisComponent.CurrentSelection.setArrayFormula("=MAX(ROW(A1:A1048576)*NOT(ISBLANK(A1:A1048576)))")
Karolus

Re: eine Calcformel im Makro ausführen

von clag » Do, 26.09.2013 13:18

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

Code: Alles auswählen

x = mySheet.Columns(0).queryEmptyCells()
    LastFilledRow = x(x.Count - 1).RangeAddress.StartRow
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.

Re: eine Calcformel im Makro ausführen

von balu » Do, 26.09.2013 13:07

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?

denn bevor ich hier angefragt habe, hatte ich mich schon ne ganze Weile die Dannenhöfschen Seiten abgeklappert.
Michael hat auch eine Suchfunktion eingebaut. Aber auch seine Navigationsleiste ist nicht zu verachten, falls man sie nicht zu gänze ignoriert.
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?
Ist nicht dein ernst, oder?
Muss ich dazu noch was sagen? =>7.1.11 Wie kann man mit einem Makro eine Formel in eine Zelle eintragen?




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
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:
-> 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

Re: eine Calcformel im Makro ausführen

von Karolus » Do, 26.09.2013 13:05

Hallo
Deine Beispiels(matrix)formel ist ein schlechtes Beispiel, weil besser darstellbar als Nicht-matrix:

Code: Alles auswählen

=MAX(H2:H8)*5
Ausserdem müsstest du nichtmal in Basic dafür eine Calcfunktion ausborgen.

[edit] ups...das schrieb Balu auch schon [/edit]

Karolus

Re: eine Calcformel im Makro ausführen

von clag » Do, 26.09.2013 12:26

Hallo Ihr

dem link von lorrbas war ich schon gefolgt und wurderte mich sehr das ich den Teil nicht selber entdeckt habe 8)
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" :lol:
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

Re: eine Calcformel im Makro ausführen

von balu » Do, 26.09.2013 11:02

Hallo clag,
wie muss der Basic-code aussehen um eine Calcformel direkt im Makro auszuführen
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:

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


und ganz speziel eine Matrixformel
zB {=MAX(H2:H8*5)}
Kannst Du mir mal bitte schön den Unterschied zwischen deiner Matrixformel und meiner erklären?

Code: Alles auswählen

=MAX(H2:H8)*5
Nach meinen kurzen tests find ich im Ergebnis keinen Unterschied, bei folgenden Werten in den angegeben Zellbereich.

Code: Alles auswählen

15
6
8
1
9
30
22
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

Re: eine Calcformel im Makro ausführen

von lorbass » Do, 26.09.2013 00:01

eine Calcformel im Makro ausführen

von clag » Mi, 25.09.2013 21:26

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

Nach oben