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]