CSV bestand snel inlezen.

Geplaatst op

In Excel kun je op drie manieren gegevens importeren uit een tekstbestand:

Je kunt het tekstbestand openen in Excel of je kunt een tekstbestand importeren als een extern gegevensbereik.
Gegevens | Van tekst

Je kunt gegevens van Excel exporteren naar een tekstbestand met de opdracht Opslaan als.

De twee, meest gebruikte indelingen voor tekstbestanden zijn:

Tekstbestanden met scheidingstekens (TXT-bestanden), waarin de afzonderlijke tekstvelden zijn gescheiden door een tab (ASCII-tekencode 009).
Tekstbestanden met door een komma of puntkomma gescheiden waarden (CSV-bestanden), waarin de afzonderlijke tekstvelden zijn gescheiden door een komma (,) of puntkomma(;).
Je kunt voor TXT- en CSV-bestanden een ander scheidingsteken kiezen, wat nodig kan zijn als je de gegevens op jouw manier wilt importeren of exporteren.

Let op ! ! !

Je kunt maximaal 1.048.576 rijen en 16.384 kolommen importeren of exporteren.

Je kunt een CSV bestand ook inlezen middels een macro:

Sub Lees_CSV_Bestand()
Dim lngBestandNr As Long, lngRij As Long, varRij As Variant
Dim strTotaal As String, strRijen() As String, strVeld() As String
 
    'Freefile geeft als resultaat een integer met het volgende
    'bestandsnummer dat voor de instructie Open kan worden gebruikt.
    lngBestandNr = FreeFile
    
    'Open het juiste bestand. Let op de locatie.
    Open "C:\temp\test.csv" For Binary As #lngBestandNr
    
    'De Space functie geeft als resultaat een Tekenreeks
    'die bestaat uit het opgegeven aantal spaties in LOF
    'LOF betekent Lenght Of File
    strTotaal = Space(LOF(lngBestandNr))
    
    'Leest gegevens
    Get #lngBestandNr, , strTotaal
    
    'Sluiten
    Close #lngBestandNr
    
    'Let op ! ! !
    'Gebruik Chr(10), Chr(13), vbCr, vbLf, vbCrLf, of vbNewLine
    'Al naar gelang waarmee de rij eindigt. Rijen worden gesplitst
    strRijen = Split(strTotaal, vbCr) '< < < hier bijv. vbCr
    
    'Foutafhandeling uitschakelen
    On Error Resume Next
    For Each varRij In strRijen
        
        'Let op ! ! ! de zogenaamde delimiter
        'Kan zijn , of ; De velden worden gesplitst
        strVeld = Split(varRij, ",") '< < < hier bijv. de komma
        lngRij = lngRij + 1
        
        'Gegevens wegschrijven naar cel
        Cells(lngRij, "A").Resize(, UBound(strVeld) + 1) = strVeld
    Next
    
    'Foutafhandeling weer inschakelen
    On Error GoTo 0
End Sub

Test bestand:
https://www.dropbox.com/s/wmtt5rn3kl1j4sw/test.csv

Leave a Reply

Your email address will not be published. Required fields are marked *