Invio mail con VBA: Spedire automaticamente fogli Excel tramite Outlook (anche come PDF)

Download PDF

Il bisogno e’ molto semplice:

  • abbiamo una serie di fogli excel (report) da distribuire in modo selettivo a un insieme di colleghi.
  • Vogliamo creare file excel specifici per ogni collega (gruppo di colleghi) contenente i report ad essi destinati
  • vogliamo poter includere in una mail tale file excel (possibilmente senza formule o riferimeni a fogli esterni),
  • vogliamo poter popolare automanticamente con la mail dei destinatari il campo “A:”

in modo che sia necessario solo scrivere qualcosa nel testo del messaggioe premere il pulsante “Invia”

Il tool scaricabile da questa pagina fa esattamente questo: e’ un foglio elettronico che automaticamente compone i report secondo le indicazioni presenti su uno dei suoi fogli, salva tale files in una directory selezionata e allegare tali file in mail preimpostate.

Funzionamento del tool:

Il tool contiene 4 fogli. Tre report, in realta’ sono tre fogli popolati “a caso” e un foglio per il controllo del tool: DistributionTable

  • Per prima cosa scegliere una directory dove verranno salvati i file di reportistica generati.  Adesso la directory scelta e’ C:\export\ . Modificatela a vostro piacere e create sul vostro HD o disco di rete tale directory scelta. Attenzione solo ai nomi: qualsiasi sia la directory che utilizzerete, nel foglio excel dovrete aggiungere la barra alla fine della stessa “\” esattamente come e’ ora.
  • Cambiate i nomi delle email (a meno che non vogliate inviare i vostri report a me). Se volete inviare la mail (il report) a piu’ utenti, semplicemente, scrivete nelle celle in colonna “A” i vari indirizzi email separati dal punto e virgola “;” esattamente come fareste in una mail normale.
  • Usate la colonna B come campo descrittivo, non viene usata dalla macro ma e’ a vostra disposizione per note, commenti, desctrizioni etc.
  • Cambiate i nomi dei report in colonna C
  • Premete il tasto grigio nel foglio di lavoro.

La macro scorre i nomi dei fogli a partire dalla colonna “D” e a seconda di dove trova una x (attenzione la macro cerca solo la “x” e NON la “X” maiuscola o qualsiasi altra lettera/numero), include il foglio con tale nome nel report che va a salvare.

La macro crea un secondo foglio, trasforma tutte le formule in valori e lo salva nella directory indicata.

Ultima cosa, la macro allega tale file in una nuova mail che ha come desitnatari gli indirizzi che trova in colonna A. In questo momento la macro spedisce due file di reportistica, il primo conterra’ duefogli, il secondo conterra’ tre fogli. Incidentalmente invia tali report allo stesso indirizzo di posta.

Utilizzo del tool:

e’ molto piu’ semplice allegare in questo file i report piuttosto che riportare le logiche di questo file in un file di reportistica. Il motivo? Nel file sono stati preimpostati i riferimenti alle libreie necessarie e sono state impostate le logiche attraverso macro.

Per poter utilizzare il tool dovete seguire i seguenti passi:

  1. salvare il file sul proprio disco.
  2. copiare e incollare i fogli di reportistica dal file excel in questo “dispatcher”.
  3. Ovviamente la cosa piu’ semplice da fare e’ la seguente: ammettiamo che aveteun file excel che si chiama “report.xlsx”. potrete salvare questo dispatcher come “report.xlsm” nella stessa directory. Il file dovra’ essere un “.xlsm” in quanto contiene macro da eseguire.
  4. andate nel foglio “DistributionTable” e modificate i nomi dei fogli in riga 3 a partire dalla colonna “D”. Qui inserirete i nomi dei fogli ce corrispondono ai vari report che avete appena copiato.
  5. inserite in colonna A, a partire da riga 4, gli indirizzi email dei destinatari dei vostri report.
  6. componete il nome di ogni report in cononna C
  7. mettete le “x” in corrispondenza dei report che vorrete inviare a ogni persona
  8. modificate/create la directory di appoggio dove verranno salvati i file di reportistica prima dell’invio
  9. la macro aggiungesempre la data di fronte a ogni file salvato e a ogni mail inviata. Dovreste quindi creare mano a mano un archivio di tutti i report che inviate automaticamente.
  10. premete il tasto “Crea emails” e attendete che vengano create le mail da inviare.
  11. a questo putnose tutto funziona bene potete tranquillamente cancellare i fogli “Sheet3” “Sheet4” e “Sheet5”.

Ovviamente questo file funziona con Excel e con Outlook. Non e’prevista l’integrazione con nessun altro sistema di posta.
Modifiche/Migioramenti del codice:

Premendo ALT+F11 potete entrare nell’areadi editazione del codice. Vederete che il codice e’ molto semplice, si possono fare molto facilmente delle modifiche/miglioramenti. Un esempio: e’ possibile inserire automaticamente un testo nelle mails oppure inviare automaticamente le mail invece di visualizzarle a schermo.

Siete liberi di modificare il codice a vostro piacimento, vi prego di farmi saperecome lo modificate, possiamo ospitaretranquillamente su questo sito le vostre idee!

Dispatcher

Aggiornamento:

Abbiamo aggiunto qualche ulteriore funzionalita’ al file:

ora e’ possibile:

  • Inserire in CC un secondo elenco di email
  • Inserire un testo nel corpo della mail: sara’possibile, per esempio usando la funzione CONCATENA, inserire testi che si adattano automaticamente al contenuto del report per esempio riportando i totali o selezionando una frase specifica all’interno di un elenco di frasi pre-impostate
  • selezionare se si vuole inviare il report in PDF o in EXCEL. Ogni singolo report puo’ essere inviato in uno o nell’atro modo.

Dispatcher 2

 Aggiornamento 2:

Abbiamo aggiunto una funzionalità richiesta dal nostro lettore.

In questo file è possibile selezionare quali delle mail è da inviare oppure no. una colonna con Y o N vi consente di tenere il database di tutte le mail che volete spedire ma di scegliere di volta in volta quali volete spedire e quali no

Dispatcher3

The following two tabs change content below.

Andrea Terzaghi

Geneva (CH)
Ingegnere, pellegrino del mondo e della conoscenza, curioso di tutto

Ultimi post di Andrea Terzaghi (vedi tutti)