Seite 1 von 1

Tabellen funktion schreibt nicht in andere Zelle

Verfasst: Do, 28.12.2006 20:43
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

Verfasst: Fr, 29.12.2006 08:35
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

schade eigentlich

Verfasst: Fr, 29.12.2006 22:27
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