Come importare file di testo più velocemente

Patrizia si chiedeva come modificare il tipo di dati predefinito da “generale” a “testo” per tutte le colonne di un file di testo in fase di importazione. Cambiare il formato di ogni colonna, soprattutto quando ce ne sono molte, può essere, nella migliore delle ipotesi, noioso.

Sfortunatamente, non è possibile modificare l’impostazione predefinita. Tuttavia, la modifica dei tipi di dati delle colonne può essere eseguita molto più facilmente applicando alcune delle funzionalità disponibili nella maggior parte dei programmi Windows. Segui questi passaggi:

  1. Inizia a importare il file di testo come faresti normalmente.
  2. Quando viene visualizzata la finestra di dialogo che consente di modificare i tipi di dati della colonna, seleziona la prima colonna nella tabella.
  3. Scorri verso destra nella finestra di dialogo in modo che sia visibile l’ultima colonna della tabella.
  4. Tieni premuto il tasto Maiusc mentre fai clic sull’ultima colonna. Ora tutte le colonne dovrebbero essere selezionate.
  5. Cambia il tipo di dati in Testo.
  6. Continua con l’importazione, come fai di solito.

 

Come importare file di testo più velocemente 1

 

La finestra di dialogo del passaggio 2 verrà visualizzata solo se l’estensione del nome file non è “.csv“. Se è “.csv” dovrai modificarla in “.txt“.

Se ti accorgi che questa operatività è per te molto frequente, potresti pensare di interrompere l’associazione del tipo di file CSV con Excel tramite il pannello di controllo.

Inoltre se desideri una tecnica non macro, puoi utilizzare Power Query/Recupera e trasforma dati. Non solo potrai impostare il tipo di dati come Testo, ma puoi anche aggiungere un’eventuale pulizia dei dati e riorganizzazione delle colonne.

Se preferisci un modo ancora più veloce per inserire le informazioni dal file di testo delimitato, puoi farlo utilizzando una macro, saltando così completamente i filtri di importazione di Excel. La seguente macro, intitolata (abbastanza appropriatamente) Importa, farà il lavoro per te:

 

Sub Importa()
    Open "C:\dati.txt" For Input As #1
    R = 1
    While Not EOF(1) 'Scansiona il file riga per riga
        C = 1
        Entry = ""
        Line Input #1, Buffer
        Length = Len(Buffer)
        i = 1
        While i <= Length 'Divide la stringa in celle
            If (Mid(Buffer, i, 1)) = "," Then
                With Application.Cells(R, C)
                    .NumberFormat = "@" 'Formattazione come testo
                    .Value = Entry
                End With
                C = C + 1
                Entry = ""
            Else
                Entry = Entry + Mid(Buffer, i, 1)
            End If
            i = i + 1
        Wend
        If Len(Entry) > 0 Then
            With Application.Cells(R, C)
                .NumberFormat = "@" 'Formattazione come testo
                .Value = Entry
            End With
        End If
        R = R + 1
    Wend
    Close #1
End Sub

 

 

Tieni presente che puoi modificare la prima riga della macro per rappresentare il nome del file che stai importando. Dovresti anche capire che questa macro funziona sui file di testo delimitati più semplici. Se il file è stato creato con virgolette attorno a ciascun campo (come talvolta accade), la macro non fornirà i risultati desiderati e dovrà essere modificata per compensare le virgolette. Oppure, in alternativa, puoi semplicemente utilizzare la ricerca e rimuovere le virgolette dopo che la macro ha importato le informazioni.

 

 

Tags: , , , , , , , , , ,

Ti è stato utile?