Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Mauro, ti ringrazio per l'interessamento e veniamo al dunque. Le subdirectory, sono tutte posizionate sotto la directory "Inferiori" sul Desktop. All'interno di ognuna di queste subdirectory c'è un file chiamato "Sicon_Welds.csv" oggetto dell'import. Ho notato che tale file(s) nonostante sia in formato csv, è stato già importato e suddiviso dall'originale (anche se ho visto che con le tue istruzioni viene importao correttamente). Quindi, la necessità di raggruppare tutti i files "Sicon_Welds.csv" uno sotto l'altro in un unico foglio. Spero di essere stato esaustivo.
P.S. Mauro, vado un pò OT. Hai avuto poi tempo per verificare la mia richiesta precedente del 16 maggio?
Per il file di maggio, in mezzo c'è stato il terremoto. Puoi postare il link?
Grazie.
Per il quesito di questo post, prova questa (vedi note in fondo):
Public Sub m()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim objSubfolder As Object
Dim colSubfolders As Object
Dim qryTab As QueryTable
Dim sh As Worksheet
Dim lRiga As Long
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Prova")
Set colSubfolders = objFolder.Subfolders
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
For Each objSubfolder In colSubfolders
lRiga = .Range("A" & .Rows.Count).End(xlUp).Row + 1
If Dir(objSubfolder.Path & "\Sicon_Welds.csv") <> "" Then
With .QueryTables.Add(Connection:="TEXT;" & _
objSubfolder.Path & "\Sicon_Welds.csv", _
Destination:=.Range("A" & lRiga))
.Name = "XXXX"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1250
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True '<<===Delimitatore
.TextFileCommaDelimiter = True '<<===Delimitatore
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1) '<<=== Numero colonne da modificare
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=True
End With
For Each qryTab In .QueryTables
qryTab.Delete
Next
End If
Next
End With
Set sh = Nothing
Set objSubfolder = Nothing
Set colSubfolders = Nothing
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
Oppure (fa la stessa cosa in altro modo):
Public Sub m()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim objSubfolder As Object
Dim colSubfolders As Object
Dim wk As Workbook
Dim qryTab As QueryTable
Dim sh As Worksheet
Dim lRiga As Long
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFolder = objFSO.GetFolder("C:\Prova")
Set colSubfolders = objFolder.Subfolders
Set sh = ThisWorkbook.Worksheets("Foglio1")
Application.ScreenUpdating = False
With sh
For Each objSubfolder In colSubfolders
lRiga = .Range("A" & .Rows.Count).End(xlUp).Row + 1
If Dir(objSubfolder.Path & "\Sicon_Welds.csv") <> "" Then
Set wk = Workbooks.Open(objSubfolder.Path & "\Sicon_Welds.csv")
wk.Worksheets(1).UsedRange.Copy
.Range("A" & lRiga).PasteSpecial
Application.DisplayAlerts = False
wk.Close
Application.DisplayAlerts = True
End If
Next
End With
Application.ScreenUpdating = True
Set wk = Nothing
Set sh = Nothing
Set objSubfolder = Nothing
Set colSubfolders = Nothing
Set objFile = Nothing
Set objFolder = Nothing
Set objFSO = Nothing
End Sub
NOTE.
Modifica questa path:
"C:\Prova"
con la path della cartella dove si trovano le cartelle con i files, quindi con la path di Inferiori.