• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

code van Edmoor: toevoegen van laatste data-regel

Status
Niet open voor verdere reacties.

jansm

Gebruiker
Lid geworden
2 apr 2014
Berichten
421
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:
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
 
Als je even weer je voorbeeld document en .csv bestanden kan plaatsen wil ik daar wel even naar kijken.
Daarnaast, wat gebeurt er met de bestanden die al ingelezen zijn?
 
.... of kunnen deze .csv-bestanden ook direct worden ingelezen in het mijn . xlsx bestand?
 
Hallo Edmoor, heb je voldoende aan de files die ik gisteren hier gepost heb?
 
Voeg de rode regels eens tussen.
De namen van .csv bestanden die ingelezen zijn komen onder elkaar in kolom A van blad2.
Code:
Print #FileNum, StrLine
    Do While Len(StrFile) > 0
[COLOR=#FF0000]    Set c = Blad2.Columns(1).Find(StrFile, , xlValues, xlWhole)
     If c Is Nothing Then[/COLOR]
      [COLOR=#FF0000]  Blad2.Cells(Rows.Count, 1).End(xlUp).Offset(1) = StrFile[/COLOR]
        StrName = Left(StrFile, Len(StrFile) - 4)
            If IsDate(StrName) Then
                StrLine = ReadLastLine(StrFolder & StrFile, False)
                Print #FileNum, StrLine
            End If
    [COLOR=#FF0000]     End If[/COLOR]
      StrFile = Dir
    Loop
 
Hallo HSV, bedankt voor jouw reactie. Ik ga hem straks of anders morgen proberen.
Mvg, Jansm
 
Ik heb me er verder niet mee bemoeid omdat de aanpassing van HSV prima aan je verzoek lijkt te voldoen :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan