von T.Ruediger » Mi, 17.08.2016 17:27
Hallo,
in einem Tabelledokument mit 3 Tabellen möchte ich den Wert in den Zellen einer Spalte einer jeden Tabelle, welcher sich aus einer Berechnung ergibt überwachen.
Wenn z.B. in C1 die Formel A1-B1 einen Wert kleiner 0 ergibt soll eine Messagebox mit entsprechender Meldung darauf hinweisen.
Die Überwachung soll sich beispielsweise über den Bereich von C1:C50 erstecken.
Bisher habe ich dazufolgenden Code gefunden:
Code: Alles auswählen
REM ***** BASIC *****
global oModListener
Sub S_register_ModListener
oModListener = CreateUNOListener("ModListener_","com.sun.star.util.XModifyListener")
ocell = thiscomponent.sheets.getbyname("Tabelle 1").getcellrangebyname("A1")
ocell.addModifyListener(oModListener)
end sub
Sub ModListener_modified(oEvt)
if oEvt.source.value < 0 then
msgbox "Zellwert kleiner 0"
end if
End Sub
Sub ModListener_disposing
End Sub
Sub S_remove_ModListener
ocell = thiscomponent.sheets(0).getcellbyposition(0,0)
ocell.RemoveModifyListener(oModListener)
end sub
Leider fehlen mir die Kenntnisse um den Code anzupassen, bzw. vielleicht ist er so nicht geeignet, denn ürsprünglich wird damit nur eine Zelle überwacht.
Mit freundlichen Grüßen
T.Rüdiger
Hallo,
in einem Tabelledokument mit 3 Tabellen möchte ich den Wert in den Zellen einer Spalte einer jeden Tabelle, welcher sich aus einer Berechnung ergibt überwachen.
Wenn z.B. in C1 die Formel A1-B1 einen Wert kleiner 0 ergibt soll eine Messagebox mit entsprechender Meldung darauf hinweisen.
Die Überwachung soll sich beispielsweise über den Bereich von C1:C50 erstecken.
Bisher habe ich dazufolgenden Code gefunden:
[code]REM ***** BASIC *****
global oModListener
Sub S_register_ModListener
oModListener = CreateUNOListener("ModListener_","com.sun.star.util.XModifyListener")
ocell = thiscomponent.sheets.getbyname("Tabelle 1").getcellrangebyname("A1")
ocell.addModifyListener(oModListener)
end sub
Sub ModListener_modified(oEvt)
if oEvt.source.value < 0 then
msgbox "Zellwert kleiner 0"
end if
End Sub
Sub ModListener_disposing
End Sub
Sub S_remove_ModListener
ocell = thiscomponent.sheets(0).getcellbyposition(0,0)
ocell.RemoveModifyListener(oModListener)
end sub[/code]
Leider fehlen mir die Kenntnisse um den Code anzupassen, bzw. vielleicht ist er so nicht geeignet, denn ürsprünglich wird damit nur eine Zelle überwacht.
Mit freundlichen Grüßen
T.Rüdiger