Trovato!! :-)


Bart Aimar ha scritto:

Quindi rovesciare l'ordine non è sufficiente e per aggirare il problema reale, ma sarebbe necessario strutturare la macro in modo che cancelli tutti i nomi prima, e lasciando per ultimo il famigerato "elenco_prezzi".
Confesso di averci provato... ma senza trovare il modo...
Ma è ormai nota la mia scarsa abilita come programmatore... e se ci sono dei suggerimenti sono i benvenuti!

Ci ho messo una pezza (con il taglia incolla sono proprio bravo!) facendogli cancellare i nomi fino ad elenco_prezzi, e poi invertendo l'ordine in modo che elenco prezzi rimanga l'ultimo nome ad essere cancellato!

SUB Elimina_Tutti_Nomi_Definitiva
     dim n as integer
     oDoc = ThisComponent
     oAree=oDoc.NamedRanges'
     oNomiArea() = oAree.ElementNames()
     n = oAree.Count - 1
      For i = 0 to n    ' elimino i nomi fino ad elenco_prezzi
                        ' (by Marco Caresia)
          if oNomiArea(i) = "elenco_prezzi" then
                        exit for
          end if
          oAree. RemoveByName(oNomiArea(i))                     
      next
' nomi cancellati fino ad elenco_prezzi (escluso)
' Adesso inverto l'ordine di cancellazione incominciando
' dall'ultima... (by Lido Bernardini)
        For i = 0 to oAree.getCount() - 1
                a = oAree.getCount()
                oNomiArea = oAree.ElementNames(a - 1)
                oAree. RemoveByName(oNomiArea)
        next
print "finito!!"
End Sub

Risultato 25 secondi! Ottimo!

(L'ho provata su diversi file e sembra confermare comportamento e risultati!)

Ovviamente sono sempre gradite buone idee per ottimizzare il codice...

Paolo! Sei sempre "ritirato" malgrado le mie minacce?

Rimane da capire il perché di un comportamento come tu lo hai descritto..

Perchè una volta cancellato elenco_prezzi  per gli altri nomi ci vuole
un' eternità?
Che siano tutte quelle celle concatenate ad un nome non più esistente a rallentare tutto il processo?

Credo ci sia poco da capire... probabilmente è un comportamento corretto... parecchie migliaia di riferimenti che non trovano più a cosa riferirsi manderebbe in crisi chiunque!
Prendiamone atto!
Comunque Lido la tua intuizione è stata molto buona ed ha portato a risultati. ... ma devi ammettere che il mio errore di postare un file già monco dei nomi che precedevano elenco_prezzi ti ha aiutato! :-)

grazie!

Bart

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

Rispondere a