Ho anche provato a cercare le celle vuote per regular expression
inserendo ^$ nel campo di ricerca ma non me le trova.
C'e' qualche modo furbo per effettuare questa sostituzione?
Altrimenti mi tocca scrivere una macro...
> Ho anche provato a cercare le celle vuote per regular expression
> inserendo ^$ nel campo di ricerca ma non me le trova.
Infatti non funziona:
http://qa.openoffice.org/issues/show_bug.cgi?id=44688
> C'e' qualche modo furbo per effettuare questa sostituzione?
Sorry, ma di modi furbi non ne conosco...
--
news:it-alt.comp.software.openoffice : Il newsgroup dedicato a
OpenOffice.org, la suite open source di applicazioni per ufficio.
Scarica "OpenOffice.org 3.0 Soluzioni a raccolta", molto pi� di semplici
FAQ! http://it.openoffice.org/doc/manuali/
Allora proseguo con la macro che e' appena arrivata alla riga 1000 e
deve passare 15000 e passa righe...
Spero che finisca entro stasera :-(
Non so se hai già finito cmq questa dovrebbe fare il lavoro molto ma
molto più rapidamente
(ovviamente se decidi di usarla sarai il solo responsabile per
qualunque tipo di conseguenza)
good luke!
pablo
REM ***** BASIC *****
Sub FillEmptyCells
oRngs = ThisComponent.CurrentSelection.queryEmptyCells()
For Each oRng In oRngs
oRng.getCellByPosition(0,0).FormulaLocal = "0"
nFillDirection = com.sun.star.sheet.FillDirection.TO_BOTTOM
nFillMode = com.sun.star.sheet.FillMode.SIMPLE
oRng.fillSeries(nFillDirection, nFillMode, 0, 0, 0)
nFillDirection = com.sun.star.sheet.FillDirection.TO_RIGHT
oRng.fillSeries(nFillDirection, nFillMode, nFillDateMode, fStep,
fEndValue)
Next
End Sub
Non ho ancora finito, ma ormai proseguo con la mia di macro...
Un banale ciclo tra tutte le celle dove
if cella.string = "" then cella.value = 0
La cosa curiosa e' che non c'e' nel ciclo un equivalente del DoEvents
per non far inchiodare la macchina mentre la macro gira.
La CPU e' al 100%, pero' viene rilasciata quando altre applicazioni
lavorano.
In pratica la cpu viene usata a dovere ma la macchina non si siede...
tanto che sto tranquillamente gironzolando per la rete mentre la macro
lavora...
Se nel tuo foglio hai solo dati, puoi fare cos�.
Supponiamo di procedere una colonna per volta, avendo Z come prima
colonna libera da usare come appoggio.
In Z1 digiti = SE(A1="";0;A1), copi e incolli sotto per tante celle
quante te ne occorrono. Quindi copi e incolli solo i valori nella colonna A.
Ripeti analogamente per le altre colonne.
Trattasi di foglio con 15000 e passa righe per una cinquantina di
colonne, purtroppo.
Non si puo' trattare a mano.
Veramente si pu� ...
Sempre a patto che tu abbia solo dati.
In una decina di minuti risolvi il problema.
Devi giostrartela con la copia in basso e magari e un foglio di appoggio
dove inserire la funzione che ti hanno suggerito copiata per 50 volte
nella prima riga e che fa riferimento alle celle del foglio originale.
vabbe', ormai ho fatto... ad ogni modo ne riparliamo lunedi.
La mia macro non ha mica finito e alle 17:30 ho dovuto interrompere,
salvare e spegnere tutto.
In A1 di Foglio2 ho digitato la formula =Foglio1.A1 (copia il contenuto
convertendo il nulla in zero), copiata e incollata per 250 colonne e
1000 righe ha impiegato meno di 10 secondi a calcolare tutto. Tu avresti
dovuto ripeterla solo 15 volte. Vedi un po' te.
E pazienza.
Terro' presente per la prossima volta (tanto ho come il sospetto che
quesa elaborazione "una tantum" mi verra' richiesta ancora)