Articolo wiki
  • Questo articolo wiki è bloccato
Applicabile a 2483 visualizzazioni

Excel - Dividere una tabella in più file - VBA

Livello tecnico : Base

Riepilogo

Dividere una tabella situata su di un foglio in tanti nuovi file quanti sono i nominativi presenti in colonna A. Excel 2003/2007/2010/2013.

Dettagli

NOTA. Gli esempi ed il codice sono forniti *così come sono* e l’autore declina ogni responsabilità per un loro uso scorretto. Utilizzate gli esempi forniti o file di prova per i vostri test. La correzione delle eccezioni (errori) e il controllo del tipo di dati inserito è solo parziale. I file vogliono essere un semplice esempio che illustra come sia possibile automatizzare Excel e Word e sono forniti solo a scopo dimostrativo.

Situazione.

Nel Foglio1 abbiamo una tabella composta da alcune colonne e da un numero n di righe. Il numero delle colonne è ininfluente e così il numero delle righe, la cosa importante è che la tabella non abbia righe vuote (in questo caso NON sarebbe una tabella nel senso comune del termine).

Nella colonna A abbiamo una serie di nominativi ripetuti e in colonna B e C dati relativi a quei nominativi e in colonna D una semplice formula che ci serve per dimostrare come il tutto funzioni anche in presenza di formule.

Quello che vogliamo ottenere è creare tanti file quanti sono i nominativi univoci e portare i dati di ciascun nominativo su di un foglio sul nuovo file. File e nuovo foglio avranno come nome quello del nominativo relativo.

Figura 1: Struttura tabella in Foglio1

Figura 2: La semplice Formula presente in colonna D

Inoltre nei vari fogli che andiamo a creare, eliminiamo la colonna A, in quanto il nominativo è già indicato nella linguetta del foglio.

Qui potete scaricare l'esempio completo con il codice abbondantemente commentato:

La macro può essere lanciata con i tasti di scelta rapida CTRL+a.

NOTE.

1) Il codice va copia/incollato in un modulo standard e va modificato il nome del foglio con la tabella iniziale (nell'esempio Foglio1)

2) Se non averte mai utilizzato il vb di Excel, date un'occhiata aquesto articolo Wiki:

3) Il codice può essere lanciato più volte se, ad esempio, la tabella in Foglio1 viene aggiornata con nuovi nominativi o nuove immissioni dati per nominativi giàpresenti. Il codice sovrascrive eventuali fogli presenti con lo stesso nome.

4) I file verranno salvati nella stessa cartella dove si trova il file che contiene il codice. Se volete vengano salvati in altra cartella, modificare la parte in grassetto di questa riga di codice:

sPath = ThisWorkbook.Path & "\"

così:

sPath = "C:\NomeDellaDirectory\"

dove C:\NomeDellaDirectory va sostituito con il percorso e il nome della vostra directory.

5) Una parte del codice, questa:

ha la funzione di aggiungere una riga con la scritta Totale ed il totale in fondo ad ogni tabella dei nuovi fogli e va eliminata se non è necessario o modificata con i vostri riferimenti.

Figura 3: Come si presenta la tabella del foglio sul nuovo file

Articoli Wiki simili.

Commenti.

Sono graditi i tuoi commenti a questo articolo Wiki e, se lo ritieni interessante, per favore spunta la voce : E' stato utile all'inizio della pagina.

Grazie.

NOTA. Excel non dispone nativamente di procedure assolutamente sicure per impedire la visualizzazione e la modifica del codice vb e/o per la protezione dei fogli. E’ una cosa da tenere sempre presente quando si distribuiscono file con contenuti ritenuti delicati. Ricordate anche che è possibile lanciare il file di Excel senza che vengano eseguite le macro.


Risorse.


 Avvio Pulito di Windows
(courtesy of Microsoft MVP Franco Leuzzi)

Computer infettato da malware (courtesy of Microsoft MVP Vincenzo Di Russo)

Commenti (3)

avanzamento