Sviluppare funzionalita su Microsoft Office con VBA ripulire un file excel da macro non più utilizzate

Login Registrati
Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
  • Autore
    Articoli
  • #21114 Score: 0 | Risposta

    Gianni

      Buongiorno, sto implementando, ormai da tempo, un file excel per la lettura, controllo e archiviazione dei movimenti di conto corrente partendo da un file xls scaricabile dal sito della banca con gli aggiornamenti quotidiani. Col tempo sono riuscito a realizzare quanto mi proponevo arricchendo un po per volta le sue funzionalità al costo di tante ore di programmazione vba e di un appesantimento, secondo me eccessivo del file. Ad oggi il file comprende 10 cartelle circa 150 macro diverse ed un volume di circa 4,8 Mb che lo portano vicino alla saturazione delle capacità elaborative con i conseguenti rallentamenti. Terminata la fase di elaborazione di tutte le funzionalità richieste mi accingo a tentare di ridurre il carico del file eliminando quanto non utile al raggiungimento dello scopo (riduzione delle formattazioni, controllo delle funzioni volatili ecc.). Sono certo che tra le 150 macro ce ne siano almeno un terzo non più utilizzate in quanto sostituite e non cancellate al momento. La domanda è: l'eliminazione di queste macro spazzatura possono alleggerire il file e la sua esecuzione? Se la risposta è Si come posso individuarle senza doverle riaprire tutte? Esiste un modo per avere un elenco delle macro con il riferimento a quale link, casella, command botton sono attivate?

      Vi ringrazio per l'attenzione e l'aiuto che vorrete concedermi augurando a tutti una felice domenica.

      #21116 Score: 0 | Risposta

      Mirko
      Partecipante
        2 pts

        Ciao

        Sono certo che tra le 150 macro ce ne siano almeno un terzo non più utilizzate in quanto sostituite e non cancellate al momento. La domanda è: l'eliminazione di queste macro spazzatura possono alleggerire il file e la sua esecuzione?

        No, le macro non utilizzate non appesantiscono il foglio, al max qualche Kb.

        Devi eliminare righe e colonne non utilizzate,

        ridurre i riferimenti delle formule all'intero foglio.

        #21118 Score: 0 | Risposta

        Marius44
        Moderatore
          52 pts

          Buona domenica a tutti

          Certo che un "programmino" (come lo chiami tu) con 150 macro è un bel ... mattone 

          Quando faccio qualche cosa (ma molto più leggera) e voglio capire se una macro o una funzione non sono necessarie uso un sistema brutale (ma funziona): metto uno stop all'inizio di ogni procedura e lancio il programma.

          Se si ferma allo stop la macro/funzione serve; se non si blocca allora non serve. 

          Mi rendo conto, però, che 150 macro sono un po' tante ma, come dice Mirko (ciao), non dovrebbero essere la causa dell'appesantimento del file.

          Il rallentamento potrebbe essere, invece causato da qualche .Select di troppo, da copia/incolla frequenti e cose simili (oltre a quanto detto da te (riduzione delle formattazioni, controllo delle funzioni volatili ecc.).

           

          Ciao,

          Mario

          #21122 Score: 0 | Risposta

          Gianni

            Intanto vi ringrazio per le risposte,

            ho cercato e già corretto le formule che facevano riferimento ad intere righe o intere colonne, credo di non aver mai usato formule che facessero riferimento a fogli interi per cui lo escluderei. Per quanto riguarda i select ce ne saranno a palate ma poichè utilizzo lo Application.ScreenUpdating = False credevo che diventassero ininfluenti ai fini della velocità di elaborazione, sbaglio?

            Mi pare utile l'indicazione di marius44 di inserire uno stop all'inizio di ogni macro o quanto meno di quelle che di cui non sono certo del reale utilizzo. Dalle risposte credo di poter intuire comunque che non c'è modo di poter verificare da quale punto del programma possono essere richiamate le singole macro, un po come funzionano le freccette di individuazione dei precedenti e dipendenti delle formule dal menù "formule" appunto, oppure utilizzando qualche script specifico per lo scopo.

            Un ultima domanda riguarda la pesantezza del file di poco meno che 5 mb, non mi è mai capitato di imbattermi in file excel così pesante per cui mi chiedo se anche questo possa essere un sintomo di qualche errore mio di strutturazione del file, secondo la vostra esperienza può essere indicativo di una anomalia?

            Ancora Grazie ed un saluto cordiale.

              

            #21126 Score: 0 | Risposta

            Marius44
            Moderatore
              52 pts

              Ciao

              fai un'altra prova. Prendi un nuovo file e ricopia tutto. Apri l'Editor di VBA e copia/incolla le macro.

              Talvolta nei file rimangono "residui" che non si vedono (formattazioni, formattazioni condizionali, nomi definiti ed altro) che "pesano".

              E' vero, è un lavoraccio ma ...

               

              Ciao,

              Mario

              #21131 Score: 0 | Risposta

              vecchio frac
              Senior Moderator
                246 pts

                Secondo me non sono tanti neanche 5 MB, soprattutto se ci sono dati attivi e utili. Il suggerimento di Mirko sulle righe e colonne non usate è il primo da verificare. Per ogni foglio premi  Ctrl-Fine e vedi dove finisce il cursore: se ci son righe vuote/colonne vuote in eccesso, vanno eliminate.

                Anche il suggerimento di Supermario è validissimo. A volte basta ricopiare tutto in un file nuovo.

                Una mia collega mi ha passato un file Excel di 287MB (!). Alla fine l'ho ridotto a 1,5MB 🙂

                #21148 Score: 0 | Risposta

                Gianni

                  Grazie ancora, proverò le ultime indicazioni fornitemi circa la copiatura di tutto in altro file e vi do riscontro dell'esito.   

                  #21158 Score: 0 | Risposta

                  zer0kelvin
                  Partecipante
                    5 pts

                    Ciao a tutti.

                    Comunque, volendo, se le macro vengono tutte lanciate tramite pulsanti, c'è il modo di ottenere l'elenco delle macro utilizzate ciclando l'insieme Buttons di tutti i fogli e registrando i valori delle proprietà OnAction.

                    #21162 Score: 0 | Risposta

                    vecchio frac
                    Senior Moderator
                      246 pts

                      Anni fa utilizzavo con profitto gli MZTools (che supportano lo sviluppatore anche con strumenti di questo tipo). Poi purtroppo tra disinstallazioni e aggiornamenti vari vi ho rinunciato, ma solo per pigrizia... uno dei migliori e "più ottimi" strumenti di lavoro mai incontrati.

                    Login Registrati
                    Stai vedendo 9 articoli - dal 1 a 9 (di 9 totali)
                    Rispondi a: ripulire un file excel da macro non più utilizzate
                    Gli allegati sono permessi solo ad utenti REGISTRATI
                    Le tue informazioni: