Paolo Mantovani ha scritto:

Io avrei scritto un algoritmo?
fossi in te correrei subito all'ufficio brevetti :-)
:-)


Lo so bene dove rallentano... quando fanno uso della clipboard
Purtroppo non ho ancora trovato il modo di fare un copia speciale in
modo alternativo.

cosa devi copiare esattamente e da dove a dove ?

Provo a spiegarmi... ma è difficile senza vedere degli esempi...

Ho una macro inaccettabilmente lenta che fa grosso modo questo:

- In una sheet fa delle cose... individuando delle row precise (e fin quì è veloce)

- in quelle row deve incollare altre row copiate da un'altra sheet..
        (ragionevolmente veloce...)

- poi cerca altre celle giuste li intorno... e per ciascuna va su un'altra sheet copia, torna e incolla il formato...
(questo è lento... considerando che lo deve fare anche 3, 4 volte...)

Tutte insieme queste operazioni ci mettono, in ordine di grandezza, una quindicina di secondi!

Si possono verificare situazioni in cui l'operazione deve essere ripetuta iterando fra le varie voci di computo (è il caso quando si voglio risistemare i formati secondo nuove esigenze...), e spesso sono centinaia di cicli come quello sopra... Ma in tal caso, paradossalmente, è meno peggio... si "lancia" prima di andare in pausa pranzo... o la sera... e non scoccia più di tanto. Ma se banalmente si vuol dare un'aggiustatina ad una voce (magari perchè erano stati applicati colori strani come promemoria) si perde il filo di ciò che si stava facendo...
:-)

Questa è un'ottima idea...  proverò ad indagare in quella direzione!
Una possibile parola chiave potrebbe essere lock o li intorno...

Bingo :-)
lockControllers()

Questo metodo sospende l'aggiornamento della vista del documento durante l'esecuzione del codice:

thisComponent.lockControllers()

...codice
...codice
...Assicurarsi che prima di uscire venga eseguito questo:

thisComponent.unlockControllers()

Quando ho provato ad inserire lockControllers() nelle mie macro ne era venuto fuori un casino!
e Ctrl-Shift-R !!!! era l'unica salvezza...

All'epoca (qualche settimana fa...) le mie macro avevano un sacco di passaggi che usavano (spesso inutilmente) la selezione attiva... e credo fosse quello il problema...
E non ho ancora avuto il coraggio di riprovarci..

Su quel comando ancora non ho indagato a fondo ma l'sdk dice:
Description: suspends some notification to the controllers which are used for display updates.

Sembrerebbe, come già scrivevi tu, che venga sospesa soltanto la visualizzazione... e bloccato l'output a video, ma se gli dai un comando da tastiera o ckliccki come un "utente" nervoso (proprio perchè ti sembra che non succeda niente), quei comandi li prende...

Servirebbe il contrario... ovvero qualcosa che blocchi l'input dell'utente fino a quando la macro non abbia finito

Ciao

Bart

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

Rispondere a