Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

Velocizzare codice

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

Velocizzare codice

Postdi bibbaste » 22/11/15 20:45

Buonasera a tutti, ho necessità di un vostro suggerimento.
Il codice che ho allegato funziona perfettamente (nel senso che fa quello che mi serve :oops: :D ) però per svolgere il suo compito con un ciclo for da circa 250 ripetizioni ci impiega circa 2 minuti...

la mia domanda è : si può velocizzare? forse scrivendo il codice in modo diverso....

Una precisazione... le celle che copio F8 contiene un valore mentre F9 contiene una formula che deve essere copiata perché poi nelle celle di destinazione dovrà fare i suoi conteggi

Grazie in anticipo

Saluti a tutti


Codice: Seleziona tutto
Sub colonna_riassuntiva()
'
' colonna_riassuntiva Macro
'
'   Prelevo la colonna dal foglio DDE
    Sheets("DDE").Range("R2").Copy
       
'   La porto sul foglio Consuntivo
    Worksheets("Consuntivo").Range("F8").PasteSpecial xlPasteValues
       
'   Inizio a copiare le formule sul foglio Paniere
    Sheets("Consuntivo").Range("F8:F9").Copy
   
    Sheets("Panieri").Select
    Range("B4").Select
   
    x = Range("A1").Value
   
    For i = 1 To x
   
    ActiveSheet.Paste
    ActiveCell.Offset(0, 3).Range("A1").Select
   
   
    Next i
   
   
End Sub
bibbaste
Utente Junior
 
Post: 32
Iscritto il: 03/06/15 15:39

Sponsor
 

Re: Velocizzare codice

Postdi Anthony47 » 23/11/15 02:39

Piu' che velocizzare un codice penso che bisogna parlare di velocizzare un processo; per velocizzare il processo bisognerebbe conoscerlo, ma questa descrizione manca nel tuo messaggio (e non mi fido di quello che potrei capire leggendo il tuo codice).
Inoltre per fare delle prove prestazionali e' utile disporre di un file di prova, puoi pubblicarne uno? Per come fare guarda qui: viewtopic.php?f=26&t=103893&p=605487#p605487

Ciao, ti aspettiamo
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13885
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Velocizzare codice

Postdi scossa » 23/11/15 09:06

Ciao,

bibbaste ha scritto:Una precisazione... le celle che copio F8 contiene un valore mentre F9 contiene una formula che deve essere copiata perché poi nelle celle di destinazione dovrà fare i suoi conteggi


Comincia con mettere all'inizio l'istruzione
Application.Calculation = xlCalculationManual

Poi dovresti eliminare tutti quei .Select ......
Bye!
scossa

Se tu hai una mela, e io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)
Avatar utente
scossa
Utente Senior
 
Post: 424
Iscritto il: 01/04/12 16:40
Località: Provincia di Verona

Re: Velocizzare codice

Postdi bibbaste » 23/11/15 11:58


Comincia con mettere all'inizio l'istruzione
Application.Calculation = xlCalculationManual



Grazie Scossa!!

Buongiorno.... come al solito siete preziosissimi.... in effetti non ci avevo pensato... questo suggerimento mi era stato dato anche in passato in una occasione simile quando dovevo copiare e incollare diverse celle con formule.... (il motivo del rallentamento)

Risultato: 10 secondi per fare tutto !!! Grandissimo.

da adesso lo terrò sempre a mente!!! :D :D

Grazie ancora, a presto...
bibbaste
Utente Junior
 
Post: 32
Iscritto il: 03/06/15 15:39


Torna a Applicazioni Office Windows


Topic correlati a "Velocizzare codice":


Chi c’è in linea

Visitano il forum: Nessuno e 14 ospiti