mi sono iscritto da poco e vorrei proporvi questo piccolo dubbio riguardo l'importazione di file .txt in excel.
Il mio scopo sarebbe quello di:
1) assegnare tramite un valore di input (valore di una cella del primo foglio) che rappresenta il numero di documenti da importare
2) fare in modo che excel importi i file .txt con un ciclo in cui il nome del file da importare sia contenuto in una stringa
3) formattare il file .txt in modo che excel separi i dati secondo certi criteri (spazi, virgole, ecc.)
Ho scritto il codice il quale è apparentemente corretto. Infatti la macro non si pianta nè da errori e le stringhe assumono via via i valori corretti. Tuttavia la cosa sorprendente è che pur girando, la macro non importa un fico secco, come se i file a cui punta fossero vuoti, cosa che non è.
Vi allego il codice, qualcuno sa aiutarmi a capire dove sto sbagliando? Grazie infinite.
- Codice: Seleziona tutto
Sub CEM()
Dim i, n As Integer
Sheets("Dati_CEM").Select
'----seleziono la cella contenente la quantità di files .txt da processare
i = Cells(5, 3).Value
'----creo un ciclo FOR per creare tanti fogli quanti sono i file .txt da importare
'----nello stesso ciclo importo il file .txt
For n = 1 To i
'----aggiungo un nuovo foglio su cui importerò i dati
Sheets.Add After:=Sheets(Sheets.Count)
Sheets("Foglio" & n).Select
Sheets("Foglio" & n).Name = n
Dim percorso As String
Dim nome_file As String
Dim ENNE As String
ENNE = n
'per semplicità i fogli sono tutti numerati nella cartella d'origine come: "cifra.txt"
'inserisco le stringhe che contengono il percorso ed il nome file che cambierà essendo legato all'integer n
percorso = "\\Dati\dati\_COMUNE\CEM\MACRO\DATA\"
nome_file = percorso & n & ".txt"
'importo i files
With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & nome_file, Destination:=Range _
("$A$1"))
.Name = ENNE
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(1, 4, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
End With
Next
End Sub
Questo è quanto.....
Attendo!
Grazie
Giulio