BASIC Wie beschreibe ich eine Zelle ....

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: BASIC Wie beschreibe ich eine Zelle ....

von Raabun » Do, 22.07.2004 17:18

Hallo,
Ich habe diesen Vorfall OpenOffice gemeldet.
Sie führen ihn als Issue 31627.

Aber sie sagen, daß dieses Verhalten so gewünscht ist, macht ja auch Sinn, denn wenn sich eine Zelle bei der Neuberechnung einer Seite ändert, mit welchem Wert soll gerechnet werden? Dem Alten oder dem Neuen?

Schade ist nur, daß BASIC keine Fehler- oder Warnmeldung ausgibt. Es ignoriert einfach die Anweisung :(

Gruß
Dirk-Uwe

von Stephan » Do, 15.07.2004 17:51

Hallo Dirk-Uwe,

wie man die Funktion anders formulieren kann weiß ich noch nicht, Ursache für die Fehlfunktion ist jedoch, meiner Meinung nach, das die Funktion von Tabelle1 aufgerufen ist und OOo bei:

getByIndex(0)

der Meinung ist: Warum soll ich mir Tabelle1 "schnappen" ich bin doch schon in Tabelle1. Ich weiß nicht ob das nun unbedingt so realisiert sein muß wie Du es bisher angedacht hast.

Falls ja, mache Dir eine weitere Tabelle, kopiere die Formel dahinein, also:

=SCHICHT_TYPE(Tabelle1.F64;Tabelle1.F51)

und blende diese zusätzliche Tabelle einfach aus. So funktioniert es zumindestens schonmal.


Gruß
Stephan

BASIC Wie beschreibe ich eine Zelle ....

von Raabun » Do, 15.07.2004 10:36

Hi,
Mein Problem:

FUNCTION schicht_type(pointer AS INTEGER, enable AS INTEGER) AS DOUBLE
Dim sheet AS OBJECT

IF pointer = 0 THEN
schicht_type = 0
EXIT FUNCTION
END IF

IF enable = 0 THEN
schicht_type = 0
EXIT FUNCTION
END IF

MyDoc = ThisComponent

sheet = MyDoc.getSheets().getByIndex(0)
sheet.getCellByPosition(0,40).setValue(23.0)

Tabelle3 = MyDoc.getSheets().getByIndex(2)
schicht_type = Tabelle3.getCellByPosition(9,pointer).Value


END FUNCTION


Diese Funktion wird von einer Zelle auf Tabelle1 (Sheet 0 ) aufgerufen:

=SCHICHT_TYPE(F64;F51)

alles funktioniert bis auf die Zeilen:

sheet = MyDoc.getSheets().getByIndex(0)
sheet.getCellByPosition(0,40).setValue(23.0)

ändere ich nun diese Zeilen in:

sheet = MyDoc.getSheets().getByIndex(1)
sheet.getCellByPosition(0,40).setValue(23.0)


funktioniert der Code, aber leider kann ich mit der 23 auf Sheet 1 nix anfangen :(

nur zur Klarstellung die 23.0 wird später durch eine Variable ersetzt und die Zellposition auch. Es wird aber weiterhin auf Sheet 0 geschrieben.
Dies ist nur ein Test-Code.

Gruß
Dirk-Uwe

Nach oben