Condividi:        

macro excel esecuzione lenta

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

macro excel esecuzione lenta

Postdi libraio » 24/06/20 21:47

Windows7 + Excel2003

Ciao a tutti,
avendo l'esigenza di eliminare in un foglio l'intera riga quando nella cella in colonna E il dato è "0,00)
ho trovato ed adeguato alle mie esigenze la seguente macro:


Sub Elimina_righe_zero()
'
Dim r, c, x

r = Cells(Rows.Count, 5).End(xlUp).Row
For x = r To 2 Step -1
If Cells(x, 5) = 0 Then
Rows(x & ":" & x).Select
Selection.Delete Shift:=xlUp
End If
Next x
End Sub


Detta macro svolge il suo compito, ma impiega circa 2 minuti(!) a scorrere 500 righe all'incirca (probabilmente è poco meno del il tempo che impiegherei con cancellazioni manuali...)
Mi sapete indicare (e correggere) la causa di questa lentezza?
Grazie
libraio
Utente Senior
 
Post: 334
Iscritto il: 04/01/10 20:31

Sponsor
 

Re: macro excel esecuzione lenta

Postdi Marius44 » 24/06/20 22:11

Ciao
Prova a "ridurre" la tua macro così
Codice: Seleziona tutto
Sub Elimina_righe_zero()
'
Dim r as long,  x as long

r = Cells(Rows.Count, 5).End(xlUp).Row
For x = r To 2 Step -1
  If Cells(x, 5) = 0 Then Rows(x & ":" & x).Delete Shift:=xlUp
Next x
End Sub


Fai sapere. Ciao,
Mario
Marius44
Utente Senior
 
Post: 658
Iscritto il: 07/09/15 22:00

Re: macro excel esecuzione lenta

Postdi Anthony47 » 25/06/20 00:12

Col suggerimento di Mario certamente otterrai un notevole miglioramento, ma se ora impiega 2 minuti per 500 righe probabilmente c'e' ancora qualche altra causa, oltre all'inutile Select che Mario ti ha eliminato; probabilmente formule complesse (che si ricalcolano a ogni cancellazione riga) o "eventi" che si innescano su questi cambiamenti.
Io quindi aggiungerei quindi le classiche istruzioni che modificano le modalita' di calcolo, di ScreenPpdate e di gestione eventi; cioe:
Codice: Seleziona tutto
Sub Elimina_righe_zero2()
'
Dim r As Long, x As Long
'
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = False
Application.EnableEvents = False
r = Cells(Rows.Count, 5).End(xlUp).Row
For x = r To 2 Step -1
  If Cells(x, 5) < 12 Then Rows(x & ":" & x).Delete Shift:=xlUp
Next x
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculate
End Sub

Ciao a tutti
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: macro excel esecuzione lenta

Postdi libraio » 25/06/20 09:53

Grazie Anthony,
ho applicato la tua macro: perfetta e veloce come un fulmine.
Un tributo anche alle tue capacità "divinatorie"... effettivamente le colonne B,C,D, e la stessa E contengono funzioni che (come hai intuito).
Un saluto riconoscente
libraio
Utente Senior
 
Post: 334
Iscritto il: 04/01/10 20:31

Re: macro excel esecuzione lenta

Postdi ikwae » 25/06/20 12:21

ciao a tutti... questa macro è "Manna dal Cielo" per le mie ricerche quindi in ordine ringrazio il libraio per aver proposto il
problema Marius44 come "Pioniere" della macro e infine Anthony per "l'alta velocità" ... cordialmente ikwae
Excel 2007
Avatar utente
ikwae
Utente Senior
 
Post: 309
Iscritto il: 27/12/17 23:14

Re: macro excel esecuzione lenta

Postdi Anthony47 » 25/06/20 15:02

Grazie Anthony,
ho applicato la tua macro: perfetta e veloce come un fulmine.
La "mia" macro e' in realta' quella di Mario, che e' derivata dalla tua; quindi piu' che altro un lavoro di squadra.
Quanto alle capacita' divinatorie, beh anche un Pc di 20 anni fa non impiega "minuti" per riulire un elenco di 500 righe, era evidente che c'era un problema di ricalcolo o forse di eventi.

Lieto che serva anche ad altri; ma con migliaia e migliaia di righe la lentezza tornera', e bisognera' cambiare approccio...
Avatar utente
Anthony47
Moderatore
 
Post: 19436
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "macro excel esecuzione lenta":


Chi c’è in linea

Visitano il forum: Marius44 e 10 ospiti