Ein Modify-Listener...
Hab ich am Montag zum Thema Zahlenformat: Zeit vorgeschlagen
viewtopic.php?f=2&t=22127#p94868
Formel automatisch in leere Zelle schreiben
Moderator: Moderatoren
Re: Formel automatisch in leere Zelle schreiben
Gruss HW
Win7/SuSe 11.2 - LO 3.3
Win7/SuSe 11.2 - LO 3.3
Re: Formel automatisch in leere Zelle schreiben
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...
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
Win7/SuSe 11.2 - LO 3.3
Re: Formel automatisch in leere Zelle schreiben
Hallo Achim,
Wäre deine Zelle, wo die Formel eingetragen werden soll, nicht variabel, hätte ich dir folgenden Code vorschlagen können.
(ist nur ein schnipsel, und ich habe ihn nicht selber erstellt. Danke Charly
)
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
Soll das heißen, dass Du dich etwas in VBA auskennst?Achimgrö hat geschrieben: ... ich kenne mich etwas in excel aus (code zum tabellenblatt)...
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.Achimgrö hat geschrieben: ... aber in deinem beispiel ist ja alles völlig anders.
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

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
wehr rächtschraipfähler findet khan si behalden
