Macro vba per automatizzare i fogli Excel

By | 8 Apr 2018

Macro vba - Fogli di lavoro Excel automatizzato con set strumenti base ExproStasera parliamo ancora dell’automazione dei fogli di lavoro Excel, in particolare parliamo del pacchetto di macro vba che ho distribuito alla nostra piccola comunità dopo che alcuni hanno chiesto una mano per automatizzare i loro fogli di lavoro.

Come abbiamo già visto nel post “L’automazione di Excel”, per automatizzare un foglio di lavoro lo strumento più potente sono le macro, programmi in linguaggio vba (visual basic for application) con cui possiamo fare quasi tutto dentro Excel e oltre. Naturalmente per realizzare macro è necessario conoscere il linguaggio e la programmazione in generale. Le macro vengono scritte o caricate in moduli tramite l’editor e lanciate tramite maschere, pulsanti o altri strumenti interattivi gestibili con pochi click.

In generale le macro vba realizzate per essere automatismi dei fogli excel non sono legate al singolo foglio di lavoro, ma sono adattabili a tutti gli impieghi o a categorie di impieghi, perciò sono realizzate in modo da essere flessibili e indipendenti dalla struttura e dalle caratteristiche del foglio di lavoro.

Questo significa per esempio, che se hanno bisogno di agire o gestire oggetti specifici devono essere in grado di verificarne la presenza e, se necessario, devono essere in gradi di crearli o manipolare quelli esistenti. Per esempio devono essere in grado di creare pagine in cui inserire oggetti specifici, come pivot e report, oppure devono essere in grado di interagire con gli operatori per ottenere informazioni necessarie per il funzionamento.

Come sono fatti gli automatismi?

Come abbiamo già spiegato nel post “Automatismi pronti per i fogli di lavoro” gli automatismi possono essere composti da:

  1. una o più macro che replicano comandi di excel (come chiudi, stampa, aggiorna, ecc), o gruppi di comandi (come salva e chiudi, salva con nome e stampa);
  2. una o più macro che svolgono attività specifiche che non richiedono o richiedono interazione minima (per esempio, aggiorna tutte le pivot del foglio di lavoro, lancia query per l’estrazione dei dati dal server);
  3. una o più macro che svolgono attività specifiche che richiedono interazione con l’operatore (per esempio esegui controlli estesi sui dati, esegui l’aggiornamento della dashboard, esegui ricerche e/o estrazioni suoi dati su richiesta dell’operatore)
  4. macro e maschere preimpostate per svolgere attività relativamente generiche (per esempio una maschera per la navigazione veloce tra le pagine, una maschera per il controllo generico con funzioni base, una maschera per la gestione delle stampe);
  5. macro e pagine excel, impiegate come pannelli di controllo o per la configurazione dei parametri necessari o in sostituzione delle maschere (usate per esempio per la gestione minima del foglio di lavoro o come base di automatismi personalizzati);
  6. macro, pagine excel e maschere preimpostate per svolgere attività specifiche e complesse (per esempio per eseguire analisi sui dati, per la gestione di report o di dashboard).

Quindi gli automatismi possono andare da una singola macro di una decina di righe di codice che per esempio salva e chiude il foglio di lavoro, utilizzabile tramite un semplice pulsante da pagina excel o da una maschera, a decine di macro con diverse maschere programmate.

Come è fatto il pacchetto di macro vba?

Il pacchetto di macro vba che ho distribuito è composto da una decina di automatismi piuttosto semplici. Vediamoli velocemente:

  1. “Crea pagine base” crea una pagina “Dati” con una tabella Excel “TabellaDati” in cui caricare la base dati su cui lavorare, una pagina “Pivot” con una pivot “TabellaPivot” impostata sulla base dati e un grafico pivot collegato. Non interagisce con l’operatore, è piuttosto diretta.
  2. “Crea foglio dati” crea una pagina e una tabella Excel in cui caricare la base dati su cui lavorare.
  3. “Crea pivot” predispone una pagina con una tabella pivot e un grafico pivot con cui eseguire analisi o su cui costruire report. Naturalmente richiede una base dati pronta e interagisce con l’operatore.
  4. “Aggiorna pivot” aggiorna tutte le pivot del foglio di lavoro.
  5. “Salva ed esci” salva e chiude il foglio di lavoro.
  6. “Analisi descrittiva” crea una pagina con l’analisi statistica descrittiva del campo della base dati che si vuole analizzare. Naturalmente richiede una base dati su cui operare.
  7. “Svela Pagine nascoste” rivela tutte le pagine nascoste del foglio di lavoro.
  8. “Salva una copia” esegue una copia di backup del foglio di lavoro nella stessa cartella, ma con un nome reimpostato con data e ora del salvataggio.
  9. “Salva” salva il foglio di lavoro.
  10. “Esci senza salvare” chiude il foglio di lavoro senza salvataggio.

Come vedi alcuni automatismi sono utili nella fase di creazione o revisione del foglio di lavoro (es: crea pagine base), altri sono utilizzabili nella normale gestione del foglio di lavoro (es: statistica descrittiva, crea pivot, salva una copia di backup).

Per rendere gli automatismi immediatamente apprezzabili a tutti, li ho montati in un foglio Excel e li ho collegati a un pannello di controllo su pagina tramite pulsanti, quello che vedete nell’immagine qui sopra. Il foglio è concepito per lo studio, ma è pienamente funzionante e se vuoi puoi usarlo come base per i tuoi fogli di lavoro.

Ti invito a esaminare gli automatismi, sia come funzionamento che come codice. In realtà le macro non offrono novità a chi già conosce il vba, anzi il codice è piuttosto elementare, talvolta grezzo, ma è spiegato e piuttosto comprensibile anche a chi non è un esperto.

Il pacchetto di macro vba vuole essere un esempio di come dovrebbero essere gli automatismi di un foglio di lavoro Excel e allo stesso tempo vuole essere un set di strumenti utilizzabili da tutti anche da chi non è esperto. Usali per automatizzare i tuoi fogli di lavoro e ridurre i tempi di realizzazione e di gestione.

Questo foglio di lavoro è per adesso disponibile solo a chi si iscrive alla newsletter. Per iscriverti puoi usare la maschera qui di seguito. Riceverai immediatamente le macro e anche i corsi, i modelli e gli altri contenuti gratuiti.

 

 

Alla prossima ;D

Rispondi

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.