Wie aber stehts mit der Addition?
Diese Formel habe ich selbst nur zitiert und weiß nichts weiter darüber. Die Quelle hatte ich angegeben.
Und: Könntest Du mir bitte die Makro-Befehle erläutern?
Ausführliche Informationen zu allen Basic-Befehlen befinden sich in der OO-Programmhilfe.
Es lässt sich verschieben, aber dann gibt es kein Ergebnis mehr!
Die benutzerdefinierte Funktion enthält den Verweis auf ein bestimmtes Tabellenblatt, im Konkreten das Erste:
weil der allgemeine Verweis:
in der benutzerdefinierten Funktion nicht richtig funktioniert hat. Nötigenfalls müsste man die Funktion um einen Parameter erweitern, nämlich den Tabellenindex:
Code: Alles auswählen
Function diagonal_mult(SpalteLinkeZelle, ZeileLinkeZelle, SpalteRechteZelle, ZeileRechteZelle, Tabellenindex)
With ThisComponent.Sheets.getByIndex(Tabellenindex)
If ZeileLInkeZelle > ZeileRechteZelle Then
'von links aufwärts nach rechts
z = ZeileLinkeZelle
s = SpalteLinkeZelle
k = .getCellByPosition(s, z).Value
Do While s < SpalteRechteZelle
s = s + 1
z = z - 1
k = k * .getCellByPosition(s, z).Value
Loop
Else
'von links abwärts nach rechts
z = ZeileLinkeZelle
s = SpalteLinkeZelle
k = .getCellByPosition(s, z).Value
Do While s < SpalteRechteZelle
s = s + 1
z = z + 1
k = k * .getCellByPosition(s, z).Value
Loop
End If
End With
diagonal_mult = k
End function
und in der Tabelle entsprechend aufrufen, z.B.:
=DIAGONAL_MULT(0;5;5;0;0)
Gruß
Stephan