Ciao,
per gestire gli eventi da macro puoi procedere in due modi.

1. assegnando una sub-routine all'evento:

Sub SetDocEvent()
Dim oSheet
Dim mEvt(1) as New com.sun.star.beans.PropertyValue
    oSheet = ThisComponent.getCurrentController.ActiveSheet
    mEvt(0).Name = "EventType"
    mEvt(0).Value= "Script"
    mEvt(1).Name = "Script"
    mEvt(1).Value
="vnd.sun.star.script:Standard.Module1.TestEventChange?language=Basic&location=application"
    oSheet.getEvents().replaceByName("OnChange", mEvt())   
End Sub

Sub TestEventChange
    Msgbox("Test")
End Sub

2. utilizzando gli event listner:

Global oSheet, oRange, oListener

Sub AddListener
    oSheet = ThisComponent.getCurrentController.ActiveSheet
    oRange = oSheet.getCellRangeByName("A1:B2")
    oListener = CreateUnoListener("Test_",
"com.sun.star.chart.XChartDataChangeEventListener")
    oRange.addChartDataChangeEventListener(oListener)
End Sub

Sub Test_chartDataChanged
    MsgBox("Test")
End Sub

Sub RemoveListner
    oRange.removeChartDataChangeEventListener(oListener)
End Sub

Il primo metodo è del tutto equivalente all'assegnazione che fai via GUI.
Il secondo permette di attivare più listener sullo stesso foglio su
range diversi, e quindi è utile per gestire situazioni più complicate.

C.

Il 26/06/2014 16:30, gurxs ha scritto:
> Buongiorno a tutti,
>
> sto preparando un cockpit in Calc per eseguire alcuni controlli
> automatici sulla gestione di Errori.
>
> Fin'ora me la sono cavata abbastanza bene con Basic, ma adesso mi sono
> arenato su questo problema e spero che qualcuno di voi abbia e/o
> sappia aiutarmi a risolverlo.
>
> Quando l'utente inserisce un titolo nel foglio "Generale", ho fatto
> una macro che, in modo automatico, vada ad aprire un nuovo foglio di
> calcolo e lo popola con le formule necessarie, inoltre crea una specie
> di tabella (Rating).
>
> Questa tabella è fatta in questo modo: le prime 3 colonne e le prime N
> righe del foglio contengono valori e/o formule.
> Questo Range di elementi li ho anche inseriti in un DatabaseNameRange.
> Vorrei "Sortare" questo NamedRange ogni volta che una qualsiasi cella
> del foglio viene modificata.
>
> via Gui, questo lo ottengo cliccando con il tasto destro sul nome del
> foglio, quindi vado su
> Eventi foglio --> Contenuto Modificato clicco su Macro e scelgo la
> Subroutine che mi interessa far girare.
>
> Fatta a mano, funziona, ma (poiché il foglio nasce ad un preciso
> evento) vorrei fare questa assegnazione via Basic.
>
> Qualcuno ha idea di come potrei fare e / o dove posso trovare questa
> info ?
>
> Grazie
> AS
>
>
> ---
> Questa e-mail è priva di virus e malware perché è attiva la protezione
> avast! Antivirus.
> http://www.avast.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

Rispondere a