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
Makro: Formel in Zelle einfügen nur im anderen Sheet möglich
Moderator: Moderatoren
-
- Beiträge: 7
- Registriert: Di, 17.03.2009 22:29
Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich
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.Kann mir jemand sagen was ich machen muss, damit die Funktion überall funktioniert?
Gruß
Stephan
Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich
Hallo aaron,
von Makro hab ich nicht wirklich viel Ahnung, aber
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
von Makro hab ich nicht wirklich viel Ahnung, aber
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?thisComponent.sheets(1).getCellRangeByName("Tabelle1.A1").formulaLocal = formel
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
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

-
- Beiträge: 7
- Registriert: Di, 17.03.2009 22:29
Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich
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?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]
Gruß, Aaron
Re: Makro: Formel in Zelle einfügen nur im anderen Sheet möglich
indem man sie beispielsweise mit einem Makro aufruft oder ebend von einem anderen Blatt aufruft, wie Du selbst beschrieben hast.Aber unter welchen Umständen kann eine Funktion denn auch eine Rückgabeaktion liefern?
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
Gruß
Stephan