Formel automatisch in leere Zelle schreiben

Das Tabellenkalkulationsprogramm

Moderator: Moderatoren

hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Formel automatisch in leere Zelle schreiben

Beitrag von hawe »

Ein Modify-Listener...
Hab ich am Montag zum Thema Zahlenformat: Zeit vorgeschlagen
viewtopic.php?f=2&t=22127#p94868
Gruss HW
Win7/SuSe 11.2 - LO 3.3
hawe
****
Beiträge: 151
Registriert: Di, 05.08.2008 19:47

Re: Formel automatisch in leere Zelle schreiben

Beitrag von hawe »

Wie dem auch sei...
In Neues kann man sich reinarbeiten, wird ja sonst langweilig :-)....
Und wann bitte schön soll der Makro aktiv werden?
Das kann er nur, wenn er Kenntnis von einer Änderung am betroffenen Zellenbereich erhält. Und das entsprechende Ereignis wird hier durch com.sun.star.util.XModifyListener vertreten. Also zapfen wir einen Zellenbereich mittels eines Aufpassers, mit einem Listener an.
Die Prozedure
Sub register_Range_Listener
richtet einen Aufpasser für den Bereich H1:H20 für Änderungen am Zelleninhalt ein - den BEreich kannst Du auf Dein Problem anpassen.
Absofort wird bei jeder Änderung in H1:H20 die Prozedur
Sub timeRangeListener_modified( oEvent )
aufgerufen, wo du Deine Formel zurückschreiben kannst.
Etwas Recherche im FOrum und der Einzelschrittdebugger werden wahre Wunder leisten...
Zuletzt geändert von hawe am Fr, 23.01.2009 22:01, insgesamt 1-mal geändert.
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Benutzeravatar
balu
********
Beiträge: 3812
Registriert: Fr, 24.08.2007 00:28
Wohnort: Warstein

Re: Formel automatisch in leere Zelle schreiben

Beitrag von balu »

Hallo Achim,

Achimgrö hat geschrieben: ... ich kenne mich etwas in excel aus (code zum tabellenblatt)...
Soll das heißen, dass Du dich etwas in VBA auskennst?
Achimgrö hat geschrieben: ... aber in deinem beispiel ist ja alles völlig anders.
Ist doch vollkommen logisch, da StarBasic nicht VBA ist. Oder anders gesagt; In OOo gibt es nun mal halt kein VBA. Und folgedessen sieht hier ein Code ganz anders aus als in Excel.

Wäre deine Zelle, wo die Formel eingetragen werden soll, nicht variabel, hätte ich dir folgenden Code vorschlagen können.

Code: Alles auswählen

Formel1 = "=wenn(a1="";1;2)"
...
Monatsblatt = Doc.sheets.getByName(Monate(I))
Zelle = Monatsblatt.getCellRangeByName("B16")
Zelle.formula = Formel1
(ist nur ein schnipsel, und ich habe ihn nicht selber erstellt. Danke Charly :wink:)
Da die betreffende Zelle aber variabel ist, erhöht das nun mal halt den Aufwand um die leere Zelle zu suchen.

Ich bin kein Makro-Mensch, und kenne mich deshalb nicht wirklich in dieser Materie aus.



Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.

wehr rächtschraipfähler findet khan si behalden :D
Antworten