Aktualisieren von Zellen

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Aktualisieren von Zellen

Beitrag von Shirkan »

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
Gert Seler
*******
Beiträge: 1763
Registriert: Di, 03.10.2006 18:05

Re: Aktualisieren von Zellen

Beitrag von Gert Seler »

Hallo Markus,
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
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Aktualisieren von Zellen

Beitrag von Stephan »

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
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Aktualisieren von Zellen

Beitrag von Shirkan »

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
Benutzeravatar
lorbass
********
Beiträge: 4116
Registriert: Mo, 01.05.2006 21:29
Wohnort: Bonn

Re: Aktualisieren von Zellen

Beitrag von lorbass »

Shirkan hat geschrieben:bei Excel geschieht das immer automatisch
Nö. Auch Excel macht das nur, wenn die zugehörige Option entsprechend konfiguriert ist.
Shirkan hat geschrieben:wie das bei Calc automatisiert wird, ohne, dass ich mich manuell darum kümmern muss?
Extras > Zellinhalte > Automatisch berechnen

Gruß
lorbass
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Aktualisieren von Zellen

Beitrag von 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.
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.

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.
Wenn Du anschließend gifftig reagierst, dass es nicht verstanden ist, ist das auch nicht sehr hilfreich.
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.
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 fasse mal zusammen:
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
Shirkan
***
Beiträge: 62
Registriert: Di, 21.06.2011 10:34

Re: Aktualisieren von Zellen

Beitrag von Shirkan »

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

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]
mme = lSumme + oDatenZeile( zc )
next ' Zellen
next ' nächste Datenzeile

print lSumme
MeineFunktion = lSumme

End Function[/code]
Stephan
********
Beiträge: 12368
Registriert: Mi, 30.06.2004 19:36
Wohnort: nahe Berlin

Re: Aktualisieren von Zellen

Beitrag von Stephan »

Also ich habe jetzt Extras/Zellinhalte auf automatisch berechnen gestellt.
Und das kann natürlich nicht helfen weil Du Notwendigkeiten und Wunsch vermischt.

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
Antworten