Det er også helt fair
Hovedsagen er jo, at det virker for dig.
Jeg har (uden at teste det lokalt hos mig selv) prøvet at indbygge min kode-stump i din nuværende løsning. Så "sparer" du et antal loops, da der kun skal hentes data fra én samlet fil.
Sub SamleFiler()
Dim path As String
Dim FileName As String
Dim LastCell As Range
Dim Wkb As Workbook
Dim ws As Worksheet
Dim ThisWB As String
Dim sysXLS, tabel As Variant, ræk As Long, k As Long, antalKolonner As Long, antalK As Integer
Dim linje As String
Set sysXLS = ActiveWorkbook
ræk = 1
ThisWB = ThisWorkbook.Name
Application.EnableEvents = False
Application.ScreenUpdating = False
path = ActiveWorkbook.path & "\CSV\"
' Saml csv-filerne til én fil med navnet "samlet.csv" som ligger i din path
Dim varShell
varShell = Shell("cmd /c copy /b " & path & "*.csv " & path & "samlet.csv", vbMinimizedNoFocus)
' Sæt variablen FileName til navnet på den samlede csv-fil
FileName = path & "samlet.csv"
' Her har jeg fjernet loopet med "Do until ..." fordi der nu kun er én samlet fil
Open FileName For Input As #1
While Not EOF(1)
Line Input #1, linje
tabel = Split(linje, ";")
antalK = UBound(tabel)
For k = 1 To antalK
sysXLS.Sheets(1).Range("B5").Cells(ræk, k) = tabel(k - 1)
Next k
ræk = ræk + 1
Wend
Close #1
' Er det ikke Sheets(1), som skal have auto-tilpasset kolonnebredderne?
' Data fra csv-filen indsættes i Sheets(1) - ikke Sheets(2) som angivet herunder
sysXLS.Sheets(2).Columns.AutoFit
Application.EnableEvents = True
Application.ScreenUpdating = True
Set Wkb = Nothing
Set LastCell = Nothing
Set sysXLS = Nothing
End Sub
Du kan jo prøve det, hvis du har tid og lyst
Mvh Max