Funktion IKV (IRR), Datenübergabe

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: Funktion IKV (IRR), Datenübergabe

Re: Funktion IKV (IRR), Datenübergabe

von balu » Mi, 27.02.2013 14:16

Hallo

@Winfried
Der Fehler ist mMn, dass die Funktion einen Zellbereich (genauer: das Objekt eines Zellbereichs) erwartet.
Ja jetzt hat es bei mir ganz leise Klick gemacht. Im Funktions-Assistent ist ja der Hinweis auf Matrtix zu lesen, sprich Datenbereich und nicht eine einzelne Zelle. Und deshalb hatte ich hier im Forum mal ein bisschen gesucht, und etwas gefunden was vielleicht Klaus helfen könnte.


@Klaus
Schau mal hier rein: ZÄHLENWENN() im Makro aufrufen
Vielleicht hilft dir das ja doch.



Gruß
balu



p.s:
Kämpfe momentan mit ein paar Viren. Nein! Nicht Compudda :?

Re: Funktion IKV (IRR), Datenübergabe

von Klaus_O » Mi, 27.02.2013 14:10

komma4 hat geschrieben:
Der Fehler ist mMn, dass die Funktion einen Zellbereich (genauer: das Objekt eines Zellbereichs) erwartet.

Deshalb sehe ich keine Möglichkeit Werte "direkt" (als Werte) zu übergeben.
Es geht dann nur ein Hilfskontrukt: Werte in Zellen zuweisen und diesen (nun mit Werten besetzten) Bereich an die Funktion zu überreichen.
Ok. Danke für die Bestätigung, daß es nicht geht. Muss ich nicht mehr lange rumprobieren. Die vorgeschlagene Lösung nutze ich bisher. Wollte dies nur vereinfachen. Aber wenns nicht geht gehts nicht.

Wo ich allerdings sehen kann, daß die Formel das von Dir genannte "(genauer: das Objekt eines Zellbereichs)" erwartet ist mir nach wie vor unklar. Ich muss bei sowas immer rumraten und probieren :-(

Gruß Klaus

Re: Funktion IKV (IRR), Datenübergabe

von komma4 » Mi, 27.02.2013 13:26

balu hat geschrieben:zu viele Parameter
Gut gedacht :)

Der Fehler ist mMn, dass die Funktion einen Zellbereich (genauer: das Objekt eines Zellbereichs) erwartet.

Deshalb sehe ich keine Möglichkeit Werte "direkt" (als Werte) zu übergeben.
Es geht dann nur ein Hilfskontrukt: Werte in Zellen zuweisen und diesen (nun mit Werten besetzten) Bereich an die Funktion zu überreichen.

Re: Funktion IKV (IRR), Datenübergabe

von balu » Mi, 27.02.2013 12:07

Hallo Klaus,

also IRR ist der "englische" Name für das "deutsche" IKV.
Aber mit "IRR" geht dies so nicht und führt zu einer Fehlermeldung.
Immer wichtig zu Wissen um was für eine Fehlermeldung es sich dabei handelt.

Bei manchen Calc-Funktionen hilft es anstatt den englischen, den deutschen Namen zu benutzen. Ob es hier zutrifft, weiss ich nicht da nicht getestet. Was mir aber aufgefallen ist, dass Du versuchst zu viele Parameter zu übergeben.

Bei IKV sagt mit der Funktions-Assistent in Calc das nur 2, in Worten ZWEI Parameter vorgesehen sind. Du jedoch versuchst DREI Parameter -{args(0) bis args(2)}- zu übergeben, was wohl nicht funktionieren kann. Und deshalb empfehle ich dir an "IRR" auch nur zwei Parameter zu übergeben. Musst halt mal selber testen ob es hilft.


Bisher ist es mir nur gelungen einen Datenbereich in einer Tabelle zu übergeben:
[...]
Gibt es eine Möglichkeit die Daten im Makro direkt zu übergeben.
Sorry, aber ich versteh momentan nicht dein Problem und die Frage.



Gruß
balu

Funktion IKV (IRR), Datenübergabe

von Klaus_O » Mi, 27.02.2013 10:27

Hallo zusammen,
ich versuche gerade Daten an die Funktion Funktion "IRR" in einem Makro zu übergeben. Als Beispiel habe ich dieses funktionierende Makro benutzt.

Code: Alles auswählen

Sub Test()
oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
Dim args( 2 ) As Variant
     args(0) = 8
     args(1) = 4
     args(2) = 12
result = oFunctionAccess.callFunction( "LCM", args() ) 
msgbox result
end sub
Aber mit "IRR" geht dies so nicht und führt zu einer Fehlermeldung.

Code: Alles auswählen

Sub TestIRR()
oFunctionAccess = createUnoService( "com.sun.star.sheet.FunctionAccess" )
Dim args( 2 ) As Variant
     args(0) = -1000
     args(1) = 10
     args(2) = 1100
result = oFunctionAccess.callFunction( "IRR", args() ) 
msgbox result
end sub
Bisher ist es mir nur gelungen einen Datenbereich in einer Tabelle zu übergeben:

Code: Alles auswählen

Startzelle = "A1"
  Endzelle = "A3"
  oFunktion = GetProcessServiceManager().createInstance("com.sun.star.sheet.FunctionAccess")
  oBereich = oTabelle.getcellrangebyname(Startzelle &":"& Endzelle)
  Ergebnis = oFunktion.callFunction("IRR", Array(oBereich))
Gibt es eine Möglichkeit die Daten im Makro direkt zu übergeben.

Gruß Klaus

Nach oben