Tabellen funktion schreibt nicht in andere Zelle

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Frankvas
**
Beiträge: 20
Registriert: Mi, 19.05.2004 18:15
Wohnort: landkeis HE

Tabellen funktion schreibt nicht in andere Zelle

Beitrag von Frankvas »

in einer zelle"E9" habe habe ich die Basic-Funktion "=AUTOH(E11;B10)" stehen

diese Funktion soll noch einen wert in einer anderen Zelle ädern . Das geht nicht .


<code>


function autoh(bem as string ,daz as Single)

dim ut as integer
dim cell,sheet,doc as object
dim n as string
doc=stardesktop.currentcomponent
n=doc.currentcontroller.activesheet.name
sheet=doc.sheets.GetByName(n)


if IsNumeric(bem ) then
autoh=bem
else
select case bem
case "B" :
autoh=4
case "N"
autoh=10
case "E"
autoh=6
case "U"
autoh=daz/6

cell = Sheet.getCellByPosition(1,2)
ut=cell.value
ut=ut-1
cell.value=ut
case "KU"
cell = sheet.getCellByPosition(1,2)
ut=cell.value
ut=ut+1
cell.value=ut
end select
end if

end function

</code>

die funktion wird ausgeführt ,setzt das richtige ergebnis in die zelle der Funktion .
Aber!!!!! die Zeile "cell.value=ut" hat keine wirkung .bin ich hier an die Grenzen des möglichen , oder wo zum kuckuck ist der Fehler.


bin für tipps und Hinweise sehr dankbar

gruß frank
Toxitom
********
Beiträge: 3769
Registriert: Di, 12.08.2003 18:07
Wohnort: Wiesbaden
Kontaktdaten:

Beitrag von Toxitom »

Hey Frank,

bin ich hier an die Grenzen des möglichen , oder wo zum kuckuck ist der Fehler.
Genau. Wenn eine benutzerdefinierte Funktion aufgerufen wird, sind alle anderen Zellen schreibgeschützt - du kannst dort nichts reinschreiben. Die Zelle kann lediglich das Ergebnis (Rückgabewert) der Funktion darstellen.

Allso, da musst du die Logik deines Sheets umbauen oder "echte" Makros verwenden. Die können das, benötigen aber eben einen Auslöser.

Gruss
Thomas
Unterstützer LibreOffice, zertifizierter Trainer und Berater
Bücher: LibreOffice 6- Einstieg und Umstieg
Makros Grundlagen - LibreOffice / OpenOffice Basic
Frankvas
**
Beiträge: 20
Registriert: Mi, 19.05.2004 18:15
Wohnort: landkeis HE

schade eigentlich

Beitrag von Frankvas »

Wenn eine benutzerdefinierte Funktion aufgerufen wird, sind alle anderen Zellen schreibgeschützt -
Schade eigentlich . Welchen Grund hat denn dieser Schreibschutz ? .Vielleicht kann das in der nächsten OO Version geändert werden .

Gruß und besten dank Frank
Antworten