Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[Excel 2007] Errore, Routine troppo grande! Mi aiutate a ridurla?

63 views
Skip to first unread message

nommiviene

unread,
Oct 9, 2009, 6:19:01 PM10/9/09
to
Ho seguito un fogio dai dati grezzi al risultato finale, registrando la macro.
Solo che se alla fine cerco di eseguirla, salta fuori un errore che mi dice
che è troppo lunga.

..ma ci ho messo ore a creare questa formattazione! :/
e secondo me, dato che io le macro non le so scrivere, il codice è anche
semplice da ridurre.

Eccolo qui:
http://www.mediafire.com/?axvx2zm1fjt

Io ho provato semplicemente a togliere le righe del tipo
ActiveWindow.ScrollColumn = 2
o simili..ma
1) non è bastato a ridurre abbastanza la dmensione
2) forse è una cappellata

Dunque, c'è qualche anima pia che mi può spiegare come ridurre il contenuto
della macro in modo che io la possa eseguire?
Io pensavo che registrasse solo quel che facevo su un file..ma a leggere il
codice tien dentro tutto, anche se ho visitato un altro file.
Ecco, se può servire, sono state solo visite, dunque si possono eliminare
quelle parti.

Grazie mille davvero!

Roberto Restelli

unread,
Oct 13, 2009, 10:10:24 AM10/13/09
to
Ciao!

"nommiviene" ha scritto:


> Ho seguito un fogio dai dati grezzi al risultato finale, registrando la
> macro.
> Solo che se alla fine cerco di eseguirla, salta fuori un errore che mi
> dice
> che è troppo lunga.
> ..ma ci ho messo ore a creare questa formattazione! :/
> e secondo me, dato che io le macro non le so scrivere, il codice è anche
> semplice da ridurre.

Su questo non c'è dubbio: probabilmente due terzi del codice si può
eliminare e sostituire con una manciata di istruzioni...
Ma senza entrare nel merito del codice ci sono anche metodi per spezzare la
tua macro in più macro che si richiamano in cascata e che quindi permettono
di mantenere il codice inalterato.
Un esempio: ammettiamo di avere questa macro:
=====
Sub Macro1()
'riga1
'riga2
'riga3
'riga4
'riga5
'...
'riga ennesima
End Sub
=====

Si può prendere l'ultima parte, spostarla in una procedura diversa (per
esempio Macro2) ed aggiungere un riferimento in Macro1 per saltare alla
nuova sezione. Esempio:
=======
Sub Macro1()
'riga1
'riga2
'riga3
call Macro2
End Sub

Sub Macro2
'riga4
'riga5
'...
'riga ennesima
End Sub
=======

Ciao
Roberto

Mauro Gamberini

unread,
Oct 13, 2009, 10:19:46 AM10/13/09
to
> Ho seguito un fogio dai dati grezzi al risultato finale, registrando la
> macro.
> Solo che se alla fine cerco di eseguirla, salta fuori un errore che mi
> dice
> che � troppo lunga.
>

Mi era sfuggito il l post che
ho visto grazie alla risposta di Roberto.

Ho dato un'occhiata al codice
Facciamo prima se spieghi cosa devi fare.
Grazie.

--
---------------------------
Mauro Gamberini
http://www.riolab.org/
http://www.maurogsc.eu/
http://social.microsoft.com/Forums/it-IT/excelit/threads


0 new messages