Mirko Santarelli ha scritto:

In effetti mi ero rivolto qui perche' la mia intenzione era di creare una macro, ieri ci ho lavorato un po' (su carta) sulle possibili soluzioni, poi mi metto al PC (anzi al MAC) con Openoffice 2.0 a provare intanto il cerca e sostituisci e con questo semplice codice

Sub prova
Dim Doc As Object
Dim Shett As Object
Dim ReplaceDescriptor As Object
Dim I As Integer
Doc = StarDesktop.CurrentComponent
Sheet = Doc.Sheets(0)
ReplaceDescriptor = Sheet.createReplaceDescriptor()
ReplaceDescriptor.SearchString = "is"
ReplaceDescriptor.ReplaceString = "was"
For I = 0 to Doc.Sheets.Count - 1
Sheet = Doc.Sheets(I)
Sheet.ReplaceAll(ReplaceDescriptor)
Next I

End sub

mi viene restituito errore sulla riga
Sheet= Doc. Sheets(0) ...errore di runtime basic proprieta' o metodo non trovati

Prima di tutto devi decide se cercare in tutto il documento o soltanto su una tabella (magari quella attiva...) Io per il momento mi eviterei delle grane (la vita è già abbastanza complicata di suo) e cercherei solo sulla tabella attiva.

In tal caso userei questo codice:

Doc = thisComponent ' per ottenere il documento attivo
Sheet = Doc.Sheets.getByName(doc.currentcontroller.activesheet.name) ' per ottenere la tabella attiva

Ho provato a sostituire nella tua macro quelle due righe e la macro funziona; cioè ti sostituisce gli "is" che hai scritto con dei "was"...

Ma si tratta della sostituzione di una stringa e non della proprietà "colore di sfondo" di una cella.... Pur conoscendo poco il ReplaceDescriptor, ritengo che con quello si possano trovare e sostituire soltanto le stesse cose che si possono trovare/sostituire con la GUI... e non di più.
Quindi non ti risolve il problema!

Io ti consiglierei di usare un ciclo di for percorrendo cella per cella dal A1 all'ultima cella usata. Per ciascuna cella un if che verifica la proprietà " colore di sfondo", e se corrisponde a quello che cerchi lo modifica a "trasparente".

Probabilmente ci sono dei metodi migliori... ma questo è quello che farei.

Buon divertimento

Bart

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

Rispondere a