Makro: Formel in Zelle einfügen nur im anderen Sheet möglich

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: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich

Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich

von Stephan » Do, 19.03.2009 10:46

Aber unter welchen Umständen kann eine Funktion denn auch eine Rückgabeaktion liefern?
indem man sie beispielsweise mit einem Makro aufruft oder ebend von einem anderen Blatt aufruft, wie Du selbst beschrieben hast.

starte z.B. Makro aufruf(), dieses ruft dann die eigentliche Funktion auf:

Code: Alles auswählen

Sub aufruf()
x = textzuformel("=sum(B1:B10)")
End Sub

Function textzuformel (formel as string)
thisComponent.sheets(0).getCellRangeByName("A1").formulaLocal = formel
textzuformel = "OK"
End Function
in obiger Funktion ist das Eintragen der Formel, die Rückgabeaktion, hingegen ist die Rückgabe von "OK" durch die Funktion nur die Ausgabe eines Rückgabewertes.



Gruß
Stephan

Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich

von chakalakka » Mi, 18.03.2009 17:52

Stephan hat geschrieben:
Kann mir jemand sagen was ich machen muss, damit die Funktion überall funktioniert?[

garnichts, das Gewünschte funktioniert in Calc nicht, da benutzerdefinierte Funktionen, unter den genannten Umständen, stets nur einen Rückgabewert und keine Rückgabeaktion liefern.
[/qu[te]
Danke für die Antworten. Dass sheet(0) Tabelle 1 anspricht habe ich bedacht. Aber unter welchen Umständen kann eine Funktion denn auch eine Rückgabeaktion liefern?
Gruß, Aaron

Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich

von balu » Mi, 18.03.2009 15:06

Hallo aaron,

von Makro hab ich nicht wirklich viel Ahnung, aber
thisComponent.sheets(1).getCellRangeByName("Tabelle1.A1").formulaLocal = formel
besagt doch, das sheets(1) die Tabelle 2 anspricht, und Du aber in Tabelle1 eine Formel eintragen willst. Also wie soll sich Calc denn nun verhalten?

Bedenke bitte, dass die Zählweise bei sheets anders ist, als wie Du sie vor dir siehst. Das 1. Tabellenblatt hat immer die Nummer 0 das 2. dann die 1 und so weiter. Also
Tabelle 1 ist sheets(0)
Tabelle 2 ist sheets(1)
Tabelle 3 ist sheets(2)

Ansonsten kann ich dir nur empfehlen im richtigen Forum "OOo Basic und Java" deine Anfrage noch mal neu zu stellen. Ferner, falls noch nicht geschehen, mal bei Michael Dannenhöfer reinschaun.


Gruß
balu

Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich

von Stephan » Di, 17.03.2009 23:33

Kann mir jemand sagen was ich machen muss, damit die Funktion überall funktioniert?
garnichts, das Gewünschte funktioniert in Calc nicht, da benutzerdefinierte Funktionen, unter den genannten Umständen, stets nur einen Rückgabewert und keine Rückgabeaktion liefern.



Gruß
Stephan

Makro: Formel in Zelle einfügen nur im anderen Sheet möglich

von chakalakka » Di, 17.03.2009 22:54

Hallo,

ich habe ein Makro geschrieben welches einen String als Formel in eine Zelle schreibt:

Function textzuformel (formel as string)
...
thisComponent.sheets(0).getCellRangeByName("A1").formulaLocal = formel
...


Funktioniert auch, allerdings nur wenn ich diese Funktion in sheet(1) aufrufe. Wenn ich diese Funktion in sheet(0) aufrufe passiert gar nichts.
Wenn ich die Codezeile in
thisComponent.sheets(1).getCellRangeByName("A1").formulaLocal = formel
ändere, dann kann ich die Funktion in sheet(0) aufrufen, aber nicht mehr in sheet(1)

Kann mir jemand sagen was ich machen muss, damit die Funktion überall funktioniert?????
Nochwas: Wenn ich folgenden Code eingebe, und aus sheet(0) heraus aufrufe, erscheint eine Fehlermeldung: "Basic Laufzeitfehler. Es ist eine Exception aufgetreten. Type: com.sun.star.uno.RuntimeException Message: . "

thisComponent.sheets(1).getCellRangeByName("Tabelle1.A1").formulaLocal = formel

Schon mal vielen Dank für eure Hilfe,
gruß aaron

Nach oben