Seite 1 von 1

Re: Formel automatisch in leere Zelle schreiben

Verfasst: Fr, 23.01.2009 09:47
von hawe
Ein Modify-Listener...
Hab ich am Montag zum Thema Zahlenformat: Zeit vorgeschlagen
viewtopic.php?f=2&t=22127#p94868

Re: Formel automatisch in leere Zelle schreiben

Verfasst: Fr, 23.01.2009 21:37
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...

Re: Formel automatisch in leere Zelle schreiben

Verfasst: Fr, 23.01.2009 21:57
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