Bart Aimar ha scritto:

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

Bart Prova questa

sub Elimina_Tutti_NomiArea 
        oDoc = ThisComponent
        oAree=oDoc.NamedRanges'
        a = 0 ' La variabile a viene impostata a 0 per essere usata da
                  ' oAree.ElementNames() che deve cancellare sempre il primo 
                  ' elemento della lista cioè il numero 0 fino a che non trova
                  ' "elenco_prezzi" che non deve essere cancellato allora a
                  ' prende il numero 1 perchè il numero 0 lo prende 
"elenco_prezzi"
                  
        Do    ' Uso un ciclo Do Loop perchè è più pratico che For Next 
                oNomiArea = oAree.ElementNames(a) ' viene rilevato il primo nome
                                                                               
' della lista( a = 0)
                If oNomiArea = "elenco_prezzi" Then a = 1 ' Questa si spiega da 
se
                                                                                
     ' vedi sopra
                If oNomiArea <> "elenco_prezzi" Then 
oAree.RemoveByName(oNomiArea)
                                                                                
     ' Idem per questa
                If oAree.getCount() = 1 Then oAree.RemoveByName("elenco_prezzi")
                        ' Appena oAree.getCount() scende a 1 (ultimo elemento) 
viene
                        ' cancellato anche "elenco_prezzi" 
        Loop Until  oAree.getCount() = 0 ' A questo punto la lista è vuota
                                                             ' si esce dal 
loop, fine della storia
End Sub

Dimmi se ti funziona

Ciao Lido

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

Rispondere a