Bart Aimar schrieb:

Lo so, il soggetto dice poco... ma non mi è venuto niente di meglio...

Cercherò di spiegarmi:

Vorrei che cliccando una determinata cella venisse azionata una macro...
Ma se ad azionare la macro fosse un "tentativo di modifica" di quella cella andrebbe benissimo egualmente.

Andando nel dettaglio:
Sulla TAB1 nella cella A1 c'è una formula di link alla cella A1 della TAB2 (=TAB2.A1)
La formula in Tab1 mi visualizza la stringa contenuta in Tab2
Lo scopo di quella cella è solo quello di visualizzare, mentre la modifica dovrebbe essere fatto solo nella Tab2.

Ovviamente l'utente cercherà di modificarla da Tab1...
Posso proteggerla... ma poi l'utente è sconcertato perché non sa come modificare quella stringa.

Ora, se quando l'utente prova a modificare in Tab1 venisse azionata una macro, potrei rimandarlo in modalità editazione direttamente sulla cella A1 della TAB2...

Qualche idea su come risolvere?

Grazie e buon anno!

Bart

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Yes,
forse ti puó servire questo che ho scritto per fare una tabella turni: quando l'utente che compila la tabella inserisce un dato nelle celle abilitate la macro viene avviata automaticamente e li modifica nella cella stessa...

la sub Add_EventListener va fatta girare solo 1 volta (per esempio all'apertura del file) e assegna alle celle che vuoi tu l'evento DataChange. l'altra parte automaticamente al cambiare del dato in una delle celle del range a cui viene assegnato l'EventListener... oEvent.source identifica la cella che ha dato il via!

Sub Add_EventListener 'assegna alle celle del range 'oRangeCell' l'evento DataChange
   'ini variabili ambiente
   oDesktop = createUnoService("com.sun.star.frame.Desktop")
   oDocCalc = oDesktop.CurrentComponent
   oSheets = oDocCalc.getSheets()
oListener = CreateUnoListener( "CalcCell_","com.sun.star.chart.XChartDataChangeEventListener" ) 'mi sa che sipossono usare anche altri tipi di eventi...p.e. il focus o altro: questo intercetta i cambiamenti del dato nella cella oSheet = oSheets.getByIndex(0)
   oRangeCell = oSheet.getCellRangeByName("H9:N20")

oRangeCell .addChartDataChangeEventListener(oListener ) 'assegna alle celle End Sub

Sub CalcCell_chartDataChanged(oEvent)

   oCella = oEvent.source
   oSheet = oCella.Spreadsheet
' ...

End Sub

ciao
Antonello

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Rispondere a