Aktualisieren von Zellen
Moderator: Moderatoren
Aktualisieren von Zellen
Liebe Leute,
als Umsteiger habe ich wieder einmal meine Schwierigkeiten:
Ich habe eine benutzerdefinierte Funktion geschrieben, die aus einem übergebenen Zellbereich nach Berechnung einen Einzahlwert in eine Zelle zurück gibt "=MeineFunktion(....)". Nun ist es so, dass wenn ich die Parameter für die Funktion ändere die Zelle mit dem Rückgabewert leider nicht aktualisiert wird (bei Excel geschieht das immer automatisch). Kann mir jemand einen Tipp geben wie das bei Calc automatisiert wird, ohne, dass ich mich manuell darum kümmern muss?
Vielen Dank für Eure Hilfe
Markus
als Umsteiger habe ich wieder einmal meine Schwierigkeiten:
Ich habe eine benutzerdefinierte Funktion geschrieben, die aus einem übergebenen Zellbereich nach Berechnung einen Einzahlwert in eine Zelle zurück gibt "=MeineFunktion(....)". Nun ist es so, dass wenn ich die Parameter für die Funktion ändere die Zelle mit dem Rückgabewert leider nicht aktualisiert wird (bei Excel geschieht das immer automatisch). Kann mir jemand einen Tipp geben wie das bei Calc automatisiert wird, ohne, dass ich mich manuell darum kümmern muss?
Vielen Dank für Eure Hilfe
Markus
-
- *******
- Beiträge: 1763
- Registriert: Di, 03.10.2006 18:05
Re: Aktualisieren von Zellen
Hallo Markus,
da solltest Du das Beispiel mal hochladen !
mfg
Gert
da solltest Du das Beispiel mal hochladen !
mfg
Gert
Es gibt nichts gutes, außer man tut es.
Win7_64 / LO_4.4.5.2
Win7_64 / LO_4.4.5.2
Re: Aktualisieren von Zellen
DEr Tipp istz ganz einfach, ignorierte nicht Dir gegebene Antworten und Du hättest dieses Problem nicht. WArum wohl ga<b ich in dem anderen Thread den Hinweis auf eine benutzerdefinierte Funktion die mittels:
=SUMMENTEST(A1:B20)
aufgerufen werden kann (und eben nicht mittels =SUMMENTEST("A1:B20")) weshalb sie sich, wie jede 'normale' Funktion automatisch aktualisiert?
Gruß
Stephan
=SUMMENTEST(A1:B20)
aufgerufen werden kann (und eben nicht mittels =SUMMENTEST("A1:B20")) weshalb sie sich, wie jede 'normale' Funktion automatisch aktualisiert?
Gruß
Stephan
Re: Aktualisieren von Zellen
Hallo Stephan,
es ist zwar lobenswert, dass Du Antworten in diesem Forum schreibst, aber leider sind diese derart kryptisch, dass man erst einmal dahinter kommen muss was gemeint ist. Wenn Du anschließend gifftig reagierst, dass es nicht verstanden ist, ist das auch nicht sehr hilfreich. Unabhängig davon mag Dein Hinweis vieleicht richtig sein, aber da Deine Funktion >summentest< auch syntaktisch nicht vollständig ist muss ich mir das heute abend in Ruhe ansehen. Ich wende mich ja zwecks Hilfestellung an das Forum und nicht weil ich schon alles weiß! Nichts für ungut, ich melde mich wieder
Gruß Markus
es ist zwar lobenswert, dass Du Antworten in diesem Forum schreibst, aber leider sind diese derart kryptisch, dass man erst einmal dahinter kommen muss was gemeint ist. Wenn Du anschließend gifftig reagierst, dass es nicht verstanden ist, ist das auch nicht sehr hilfreich. Unabhängig davon mag Dein Hinweis vieleicht richtig sein, aber da Deine Funktion >summentest< auch syntaktisch nicht vollständig ist muss ich mir das heute abend in Ruhe ansehen. Ich wende mich ja zwecks Hilfestellung an das Forum und nicht weil ich schon alles weiß! Nichts für ungut, ich melde mich wieder
Gruß Markus
Re: Aktualisieren von Zellen
Nö. Auch Excel macht das nur, wenn die zugehörige Option entsprechend konfiguriert ist.Shirkan hat geschrieben:bei Excel geschieht das immer automatisch
Extras > Zellinhalte > Automatisch berechnenShirkan hat geschrieben:wie das bei Calc automatisiert wird, ohne, dass ich mich manuell darum kümmern muss?
Gruß
lorbass
Re: Aktualisieren von Zellen
Ich habe eine Antwort geschrieben welche sich nicht wesentlich von der Antwort von Komma4 unterschioed, irgendeine Rückfrage von Dir, die deutlich gemacht hätte das Du gerade merine Antwort als kryptische empfindest, habe ich nicht gelesen.es ist zwar lobenswert, dass Du Antworten in diesem Forum schreibst, aber leider sind diese derart kryptisch, dass man erst einmal dahinter kommen muss was gemeint ist.
Besonders Toll dabei das meine Antwort technisch sogar der Antwort von Komma4 bezüglich der Programmiertechnik gleicht und darüber hinaus die Funktion Summentest so wie sie dasteht sofort DEin Problem löst, selbst wenn Du sioe inhaltlich nicht verstehen würdest, denn es ist notfalls nur nötig stumpfsinnig hinzuschreiben:
=SUMMENTEST(<Dein gewünschter Zellbereich>)
Nichts weiter, also z.B. auch:
=SUMMENTEST(A1:D99)
oder auch:
=SUMMENTEST(Tabelle1.A1:Tabelle1.D99)
also doch wohl Formulierungen die du bezüglich der Antwort von Komma4 verstanden hattest.
Ich komme mir somit nur noch veralbert vor.
Wo habe ich das? Du hast die gegebene Antwort schlichtweg ignoriert, und nicht etwa nicht verstanden, denn das hätte geheißen das Du einfach nachgefragt hättest was du nicht verstanden hast, und schiebst jetzt mir dafür scheinbar noch die Schuld zu.Wenn Du anschließend gifftig reagierst, dass es nicht verstanden ist, ist das auch nicht sehr hilfreich.
Ich fasse mal zusammen:Unabhängig davon mag Dein Hinweis vieleicht richtig sein, aber da Deine Funktion >summentest< auch syntaktisch nicht vollständig ist muss ich mir das heute abend in Ruhe ansehen.
Du hast Dir meine Lösung überhaupt nicht richtig angesehen, Du hast sie in jedem Falle nicht verstanden, aber eine Nachfrage dazu hälst Du nicht für angebraucht, stattdessen glaubst Du hier zuerst einmal über meine Person urteilen zu müssen bzw. Dinge als "Kryptisch" zu erklären die Du bei der Antwort von Komma4 verstanden hattest - t o l l
Stephan
Re: Aktualisieren von Zellen
Also ich habe jetzt Extras/Zellinhalte auf automatisch berechnen gestellt. Der Aufruf der Prozedur erfolgt in einer Zelle durch: =MEINEFUNKTION ( A1:H1 ; "M1" ).
Jetzt bekomme ich in der Zeile >>oBereich = ThisComponent.Sheets().ge ....<< die Fehlermeldung "Basic-Laufzeitfehler Objektvariable nicht belegt" und weiß hier nicht weiter. Kann da noch mal jemand drüber schaun und eine Rückmeldung geben?
Gruß Markus
mme = lSumme + oDatenZeile( zc )
next ' Zellen
next ' nächste Datenzeile
print lSumme
MeineFunktion = lSumme
End Function[/code]
Jetzt bekomme ich in der Zeile >>oBereich = ThisComponent.Sheets().ge ....<< die Fehlermeldung "Basic-Laufzeitfehler Objektvariable nicht belegt" und weiß hier nicht weiter. Kann da noch mal jemand drüber schaun und eine Rückmeldung geben?
Gruß Markus
Code: Alles auswählen
Function MeineFunktion( sBereichsAdr , sTabName )
Dim oBereich as object
Dim oDaten
Dim oDatenZeile
Dim lSumme
Dim zz 'ZählerZeilen
Dim zc 'ZählerCells
oBereich = ThisComponent.Sheets().getByName( sTabName ).getCellRangeByName( sBereichsAdr )
oDaten = oBereich.getDataArray()
lSumme = 0
'die Zeilen des Bereichs durchlaufen
for zz = LBound( oDaten() ) to UBound( oDaten() )
oDatenZeile() = oDaten( zz )
'die Zellen der Zeilen durchlaufen
for zc = LBound( oDatenZeile() ) to UBound( oDatenZeile() )
lSu[code]
next ' Zellen
next ' nächste Datenzeile
print lSumme
MeineFunktion = lSumme
End Function[/code]
Re: Aktualisieren von Zellen
Und das kann natürlich nicht helfen weil Du Notwendigkeiten und Wunsch vermischt.Also ich habe jetzt Extras/Zellinhalte auf automatisch berechnen gestellt.
Extras/Zellinhalte auf automatisch stellen kann nur helfen wenn Du Zellen (genauer sind es hier Rückgaben von Zellinhalten) übergibst, das jedoch kannst Du nicht wenn Du die Funktion von Komma4 verwendest denn diese erfordert die Übergabe von Strings, also NICHT:
=MEINEFUNKTION ( A1:H1 ; "M1" )
sondern AUSSCHLIEßLICH:
=MEINEFUNKTION ( "A1:H1" ; "M1" )
denn sonst kann es nicht funktionieren. Gleichzeitig ist aber wegen der Notwendigkeit Strings übergeben zu müssen eine automatische Aktualisierung, bei dieser Art der Funktions-Implementierung, prinzipiell nicht möglich. Das war auch mein Grund im anderen Thread die andere Funktion vorzuschlagen
So ist der technische Sachstand.
Ich würde deshalb keine weitere Zeit verschwenden, sondern einfach in Deine Zelle schreiben:
=SUMMENTEST(M1.A1:M1.H1)
und es wird wie gewünscht funktionieren (sofern die Funktion Summentest() in einem Modul des Dokuments steht)
Gruß
Stephan