Condividi:        

Routine troppo grande

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

Routine troppo grande

Postdi roccofree » 04/05/08 12:18

Utilizzo Microsoft Excel 2000 ver. 9.0.2520
sto cercando di scrivere una macro da dopo un bel po di righe Excel mi da errore con:
"Routine troppo grande"
c'è possibilita di risolvere questo problema?
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Sponsor
 

Re: Routine troppo grande

Postdi Anthony47 » 04/05/08 21:51

In genere qquesto succede quando si registra una macro, perche' questo processo genera una grossa quantita' di righe di codice superfluo e comunque disottimizzato.
In questi casi il consiglio e' di spezzare in due la macro e subito prima della prima End Sub inserire una Call Seconda; insomma qualcosa come:
Codice: Seleziona tutto
Sub Prima
'. . .
'Prima meta' del codice
'. . .
Call Seconda
End Sub

Sub Seconda
'. . .
'seconda meta' del codice
'. . .
End sub


Se non puoi risolvere cosi' posta ancora.
Ciao
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Routine troppo grande

Postdi roccofree » 08/05/08 20:50

NON FUNZIONA!
nel senso, riesco a concatenare le varie macro che ho spezzato ma il risultato finale non è quello che vorrei perchè si dimentica cosa succede e che valore hanno le variabili delle macro precedenti che restano in sospeso e con le macro successive non ne tiene piu conto del loro valore assunto nelle macro di prima e di conseguenza il risultato è finale è errato.
AIUTOOOOOOOOOOOOOOOOOOOOO
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Re: Routine troppo grande

Postdi Anthony47 » 08/05/08 23:00

Devi dichiarare le variabili che usi in testa al "Modulo", prima della prima Sub; in questo modo la loro validita' e' estesa a tutte le macro del Modulo.
Oppure pulisci il codice dal superfluo; potrebbe gia' bastare.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Routine troppo grande

Postdi roccofree » 09/05/08 12:42

il problema è che le variabili cambiano di valore durante il primo "trancio"
ti posso postare il file a cui sto lavorando?
in modo da capire coso devo fare
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Re: Routine troppo grande

Postdi Anthony47 » 09/05/08 19:04

"Dichiarando" le variabili come ho detto esse mantengono anche nella seconda tranche il valore ricevuto nella prima.

Comunque prova a postare il codice che hai prodotto, cosi' si potra' essere piu' precisi.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Routine troppo grande

Postdi roccofree » 09/05/08 19:50

ecco la macro
l'ho riportata in un documento doc e compressa in formato rar
posto anche il file xls
Allegati

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

[L’estensione rar è stata disattivata e non puó essere visualizzata.]

roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Re: Routine troppo grande

Postdi Anthony47 » 10/05/08 01:37

Ho dato uno sguardo rapido; in considerazione dello stadio avanzato di lavorazione rimango dell’ idea che dichiarare le variabili per renderle valide su tutte le macro del “Modulo” sia l’ unica cosa attuabile.
Un aiutino potrebbe dartelo l’ ulteriore istruzione “Option explicit” (senza virgolette, da mettere in testa a tutto), che ti costringera’ a dichiarare tutte le variabili che usi altrimenti avrai “errore di compilazione, variabile non definita” (con evidenza della variabile da definire).

Visto che ci sono circa 115000 caratteri (contati da word), e poiche’ mi pare che la dimensione max di ogni macro debba essere di 64k, il suggerimento e’ di dividere in tre, cosi’ non devi stare a contare con precisione cosa metti nella prima e cosa nella seconda.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Routine troppo grande

Postdi roccofree » 10/05/08 07:40

scusa la mia ignoranza
ma cosa significa "dichiarare le variabili"?
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05

Re: Routine troppo grande

Postdi Anthony47 » 10/05/08 11:38

Scusa, dopo aver visto il lavoro svolto mi sembrava inutile spiegare in dettaglio; comunque ti rimanderei all' help on line del vba editor, alle voci "Dichiarazione di variabili" e "Istruzione Dim".
Penso che ottimizzare il codice per la velocita' di esecuzione non sia una priorita', e questo ti semplifica le dichiarazioni (istruzione Dim), perche' non hai bisogno di specificare il "tipo" di variabile (Stringa, Intero, Singola, etc) ma puoi lasciarle di tipo indefinito e ci pensa il vba a gestirle.
Per avere l' area di validita' su tutte le macro del Modulo, devi mettere tutte le Dim prima della prima Sub; ti consiglio anche l' istruzione Option Explicit messa in testa a tutte, cosi' se non dichiari tutte le variabili avrai un errore di compilazione con l' evidenza della variabile ancora da definire.

Ovviamente devi spezzare la macro in un punto in cui finito un processo ne cominci un altro, controllando anche che non ci siano Goto che possano rimanere "vedovi", cioe' col punto di destinazione nell' altra macro.

Ciao.
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: Routine troppo grande

Postdi roccofree » 10/05/08 22:14

grazie dei consigli ma credo che io stia scrivendo una macro troppo complicata per le mie capacita
ho fatto varie prove, nel frattempo che aspettavo soluzioni per il mio problema, e mi sono accorto che il tutto non funzionerebbe lo stesso.
sto provando a riprendere in mano la macro da l'inizio e provare a trovare una strada diversa che mi possa portare al mio risultato
in concreto, quello che dovrei fare, non mi sembrerebbe cosi complicato ma come ho gia detto le mie conoscenze sono troppo limitate per scrivere questa macro.
comunque grazie ancora
roccofree
Newbie
 
Post: 9
Iscritto il: 23/04/08 23:05


Torna a Applicazioni Office Windows


Topic correlati a "Routine troppo grande":


Chi c’è in linea

Visitano il forum: Nessuno e 49 ospiti