Splittare (dividere, separare) un file di testo importandolo in Excel. (valido anche per importare file di testo in excel)
Termine italianizzato dell'inglese To Split, che vuol dire : dividere. Vagando in quell'immensa banca dati che è la Guida in Linea di Excel (purtroppo a volte di non facile consultazione), ho trovato delle istruzioni, e curiosando fra le righe, è venuto fuori che potrebbero interessare dei "pellegrini", visto anche un certo tipo di richieste pervenutemi. Si tratta della possibilità di importare dei file di testo e comporre in un foglio di lavoro, una tabella divisa in righe e colonne con i dati provenienti dal file di testo. Sono necessari alcuni accorgimenti per ottenere un risultato valido, come quello di usare un separatore, come la virgola o il punto e virgola, tra una parola e l'altra di una stessa riga del file di testo, in modo che excel, per ogni parola e per ogni separatore, assegni la parola ad una cella, e saranno tante celle sulla stessa riga, per quante parole e separatori sono presenti nella riga del file di testo. Per ogni riga successiva presente nel file di testo, saranno assegnate altrettante righe sul foglio di lavoro. L'aspetto più interessante di questo metodo è forse rappresentato dal fatto che molti database in circolazione, conservano i loro dati non in tabelle, ma in file, magari non con estensione .Txt, ma che del Formato testo ne fanno la loro struttura, infatti i dati sono conservati in stringhe di testo dove i dati dei vari campi sono dati separati dalla virgola. Sarà possibile quindi importare uno di questi database perchè Excel provveda a creare una tabella con i dati così caricati. E conosciamo tutti l'importanza di lavorare con Excel con dati inquadrati in tabelle.. Potremo anche predisporre dei nostri file di testo per creare elenchi da importare e gestire in Excel. Esemplificando, potremmo disporre di un file di testo come l'esempio sotto: nome file: Miofile.txt
e questa sarà la tabella che Excel ci creerà facendogli importare un file di testo compilato come l'esempio sopra (va da se che le formule nelle celle le dovremo compilare DOPO aver importato il file) : Precisazioni : nel file di testo, dopo i valori di percentuale, ci sono due virgole senza nessun valore in mezzo: Excel interpreta lo spazio vuoto tra due virgole, come uno scarto di colonna, tant'è che nella tabella i valori corrispondenti (20) vengono posizionati nella colonna "aliquota iva" come deve essere. Attenzione al formato celle che ospiteranno i dati, dovranno essere settate in funzione del tipo di dato che ospiteranno; la colonna D è stata impostata a formato celle: "percentuale". Questo per evitare interpretazioni errate da parte di Excel. Una precisazione : per importare valori con decimali, non si può adoperare la virgola, perchè Excel la interpreta come separatore di elenco, ma il punto e virgola. Questa comunque la routine, dove dovrà essere indicato il percorso completo del file da importare, mentre sarà possibile definire in quale cella far importare il file; nell'esempio ho usato la A1:
Se poi si desiderasse rendere variabile il nome del file di testo da aprire (ed il percorso che mira al file), possiamo sfruttare il metodo GetOpenFileName, che ci consente di specificare l'estensione del file da cercare (Txt in questo caso) e che ci permette di ottenere la classica finestra "Apri File", nella quale selezionare il file da importare confermando nella stessa con l' OK; basta fornire il nome della variabile scelta al metodo Add della QueryTables, così:
SE ancora volessimo poi rendere variabile anche l'indirizzo della cella dalla quale iniziare ad importare, basta inserire una InputBox che ci chiederà di specificare l'indirizzo di cella, ed usare detta variabile assegnandola all'argomento Destination, così:
Per l'indirizzo della cella NON ci dovremo scordare di usare il formato A1: prima la lettera di colonna seguita dal numero di riga.
Alcune considerazioni: l'istruzione si basa sull'oggetto QueryTables che utilizza il metodo Add per creare una (letteralmente) "tavola di consultazione" con dati provenienti da una fontedati (in questo caso un documento di testo). La QueryTables possiede numerose proprietà che consentono di "pilotare" le impostazioni nella formazione della tabella. Quì sotto riporto alcune spiegazioni, mentre invito gli eventuali interessati ad andarsi a scoprire le altre nella guida in linea (del Visual Basic Editor).
Buon lavoro.
|