Discussione:
macro per cancellare contenuto celle lentissima (ma funziona)
(troppo vecchio per rispondere)
Final Job
2015-09-21 23:04:49 UTC
Permalink
Carissimi

avendo la periodica necessità di cancellare il valore contenuto in una
grande quantità di celle (sempre le stesse), ho pensato di automatizzare
la cosa e di riassumere l'operazione in una macro che contiene una serie
di istruzioni

Range("cella iniziale : cella finale").ClearContents

Ora; inaspettatamente, la macro impiega veramente tanto tempo a
completare il duty e non sono riuscito a trovare in giro chiavi di
lettura del fenomeno che, perlomeno a me, risulta sorprendente.

Perchè posso cancellare 65000 righe per 256 colonne con due click e devo
aspettare oltre due minuti e mezzo se fatto con una macro?


buona serata a tutti
Alex
Nando
2015-09-22 01:37:03 UTC
Permalink
"Final Job" ha scritto nel messaggio news:mtq2ej$jq9$***@speranza.aioe.org...

<Perchè posso cancellare 65000 righe per 256 colonne con due click e devo
<aspettare oltre due minuti e mezzo se fatto con una macro?

per velocizzare ogni macro , inseriscine il codice in questa :

Sub FastMacro()

With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With

'qui il tuo codice

With Application
.Calculation = xlCalculationAutomatic
.EnableEvents = True
.ScreenUpdating = True
End With


End Sub

Nello specifico al posto di clearcontents (che è lento sempre) io copio
una cella vuota ( A1) sopra il range da pulire, e ci mette un secondo:
Range("A1").Copy Destination:=Range("C1:C5000")
Bruno Campanini
2015-09-22 07:01:10 UTC
Permalink
Post by Final Job
Carissimi
avendo la periodica necessità di cancellare il valore contenuto in una grande
quantità di celle (sempre le stesse), ho pensato di automatizzare la cosa e
di riassumere l'operazione in una macro che contiene una serie di istruzioni
Range("cella iniziale : cella finale").ClearContents
Ora; inaspettatamente, la macro impiega veramente tanto tempo a completare il
duty e non sono riuscito a trovare in giro chiavi di lettura del fenomeno
che, perlomeno a me, risulta sorprendente.
Perchè posso cancellare 65000 righe per 256 colonne con due click e devo
aspettare oltre due minuti e mezzo se fatto con una macro?
[Estrazioni!A1:ZZ65000].ClearContents

Time < 0.05 sec
Office 2013 su Windows 10/64bit in un vecchio portatile con
Pentium P6200, 2.13GHz, 4MB RAM

Bruno
Final Job
2015-09-22 15:04:25 UTC
Permalink
Si....funziona::::
grazie ad entrambi
Alex
Post by Nando
With Application
.Calculation = xlCalculationManual
.EnableEvents = False
.ScreenUpdating = False
End With
Loading...