Edmoor, je hebt voor mij (vorig jaar) een code geschreven om van tig .csv-bestanden de laatste dataregel te verzamelen in een import.txt bestand.
Als ik het import.txt wil vernieuwen dan worden alle bestanden weer opnieuw ingelezen. Is het ook mogelijk om alleen de nieuwe bestanden in te lezen en toe te voegen aan het bestaande import.txt bestand?
Dit was jou code:
Als ik het import.txt wil vernieuwen dan worden alle bestanden weer opnieuw ingelezen. Is het ook mogelijk om alleen de nieuwe bestanden in te lezen en toe te voegen aan het bestaande import.txt bestand?
Dit was jou code:
Sub LoopThroughFiles()
Dim StrFile As String, StrName As String, StrFolder As String, StrLine As String, StrTemp As String
Dim FileNum As Integer
StrFolder = [C7].Value
If Right(StrFolder, 1) <> "\" Then StrFolder = StrFolder & "\"
StrFile = Dir(StrFolder & "*.csv")
StrTemp = StrFolder & "import.txt"
FileNum = FreeFile()
Open StrTemp For Output As #FileNum
StrLine = ReadLastLine(StrFolder & StrFile, True)
Print #FileNum, StrLine
Do While Len(StrFile) > 0
StrName = Left(StrFile, Len(StrFile) - 4)
If IsDate(StrName) Then
StrLine = ReadLastLine(StrFolder & StrFile, False)
Print #FileNum, StrLine
End If
StrFile = Dir
Loop
Close FileNum
Workbooks.OpenText Filename:=StrFolder & "import.txt", _
Origin:=xlMSDOS, _
StartRow:=1, _
DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, _
Semicolon:=True, _
TrailingMinusNumbers:=True
Columns("A:A").ColumnWidth = 15
End Sub
Function ReadLastLine(Par1 As String, FirstRow As Boolean) As String
Dim FileNum As Integer
Dim DataLine As String
FileNum = FreeFile()
Open Par1 For Input As #FileNum
Do While Not EOF(FileNum)
Line Input #FileNum, DataLine
ReadLastLine = DataLine
If FirstRow Then Exit Do
Loop
Close FileNum
End Function