• 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.

meerdere tekstbestanden importeren in excel

Status
Niet open voor verdere reacties.

EBN

Gebruiker
Lid geworden
8 apr 2021
Berichten
32
Hallo,

Ik ben op zoek naar een importscript, maar heb die nog niet gevonden op het internet.
Ik heb meerdere platte tekstbestanden die ik in één werkblad wil opnemen. Hierbij wil ik in de eerste kolom de bestandsnaam en in de tweede kolom de volledige tekst uit het bestand. De bestanden staan in één map.
Helaas geen programmeur... hebben jullie een dergelijk script? (gezocht op het forum maar niet gevonden)

hgr. Bert
 
Plaats een voorbeeld van zo'n tekstbestand hier en een voorbeeld van een Excel document waarin duidelijk is hoe je de gegevens van dat tekstbestand er in wilt hebben.
 
Laatst bewerkt:
Hierbij wil ik in de eerste kolom de bestandsnaam en in de tweede kolom de volledige tekst uit het bestand.
Wat bedoel je met "in de tweede kolom de volledige tekst"? Er zit een grens aan het aantal tekens dat je in één cel kan neerzetten. Dus als de tekst in het bestand dat overstijgt, heb je een probleem. En wat moet er met de regeleindes gebeuren?
 
Hallo,

De tekstbestanden zijn transcripties per pagina, dus max.4000 karakters. De teksten moeten via csv/excel geïmporteerd worden in een applicatie.
 

Bijlagen

  • 0003.1_5580_00017.txt
    1,6 KB · Weergaven: 28
  • Voorbeeld.xlsx
    20,1 KB · Weergaven: 17
Waarom er dan niet direct een CSV van maken als dat het uiteindelijke doel is?
 
Probeer deze eens:
Code:
Sub LeesFile()
Dim FileNum As Integer
Dim DataLine As String, sFile As String
Dim sTekst As String, MapNaam As String
    
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .InitialFileName = ActiveWorkbook.Path & Application.PathSeparator
        If .Show <> 0 Then
            sFile = Split(.SelectedItems(1), "\")(UBound(Split(.SelectedItems(1), "\")))
            MapNaam = .SelectedItems(1) & IIf(Right(.SelectedItems(1), 1) <> "\", "\", "")
        End If
    End With
    FileNum = FreeFile()
    Open MapNaam For Input As #FileNum
    
    While Not EOF(FileNum)
        Line Input #FileNum, DataLine   'read in data 1 line at a time
        If Not sTekst = "" Then sTekst = sTekst & Chr(10)
        sTekst = sTekst & DataLine
    Wend
    ActiveCell.Value = sFile
    ActiveCell.Offset(0, 1).Value = sTekst
End Sub
 
Eens met EdMoor: geef de uiteindelijke exportstruktuur aan; Excel lijkt nu een onnodige tussenstap.
Van welk archiefprojekt maakt dit deel uit ?

@EBN

Blijkbaar ben je er niet van op de hoogte dat CSV een gewoon txt-bestand is.
 
Laatst bewerkt:
Ik bedoel om direct van dat tekst bestand een CSV bestand te maken.
 
Probeer deze eens:
Code:
Sub LeesFile()
Dim FileNum As Integer
Dim DataLine As String, sFile As String
Dim sTekst As String, MapNaam As String
    
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .InitialFileName = ActiveWorkbook.Path & Application.PathSeparator
        If .Show <> 0 Then
            sFile = Split(.SelectedItems(1), "\")(UBound(Split(.SelectedItems(1), "\")))
            MapNaam = .SelectedItems(1) & IIf(Right(.SelectedItems(1), 1) <> "\", "\", "")
        End If
    End With
    FileNum = FreeFile()
    Open MapNaam For Input As #FileNum
    
    While Not EOF(FileNum)
        Line Input #FileNum, DataLine   'read in data 1 line at a time
        If Not sTekst = "" Then sTekst = sTekst & Chr(10)
        sTekst = sTekst & DataLine
    Wend
    ActiveCell.Value = sFile
    ActiveCell.Offset(0, 1).Value = sTekst
End Sub

Helaas krijg ik een foutmelding: Fout 52 , ongeldige bestandnaam of bestandsnummer. Bij foutopsporing wordt de volgende regel aangegeven 'Open MapNaam For Input As #FileNum'
 
Het probleem is niet om van één tekstbestand een csv te maken, maar van een hele reeks tekstbestanden in één keer een csv te maken, waarbij in de eerste kolom de bestandsnaam is opgenomen en in het tweede de tekst uit het bestand.

Helaas zijn de bestanden niet aangeleverd in één csv bestand, maar ik moet het nu wel in één csv-bestand samenvoegen.
 
Laatst bewerkt:
Een CSV bestand is gewoon een tekst bestand, dat staat helemaal los van Excel.
En het is geen enkel probleem om van meerdere tekst bestanden één CSV bestand te maken als je laat zien hoe het uiteindelijke CSV bestand er uit moet zien en welk scheidingsteken moet worden gebruikt.
 
Laatst bewerkt:
Plaats een voorbeeldbestand hoe jij het aangeleverd krijgt.
Overigens hebben noch txt-bestanden, noch csv-bestanden 'kolommen'. (Ze kunnen wél 'velden' bevatten).
 
Ik begrijp dat csv een tekstbestand is, maar ik wil Excel gebruiken (of Access) om een (Excel-)bestand te maken met twee kolommen met in de eerste kolom de 'bestandsnaam tekstdocument' en in de tweede 'inhoud van tekstbestand', waarbij de tekstbestanden (meerdere) vanuit een map ingelezen worden in dit (Excel-)bestand.

Aj, met kolommen bedoel ik velden...
 
Laatst bewerkt:
Dat is dus een totaal overbodige handeling omdat Excel er niet voor nodig is.
 
Veld 1 = bestandsnaam
Veld 2 = tekst uit bestand

Veld 1
0003.1_5580_00017
Veld 2
<tekst>
 
Dus alle tekst uit het teksbestand moet als 1 regel in veld 2 komen?
En wat moet het scheidingsteken zijn?
 
Een CSV bestand is gewoon een tekst bestand, dat staat helemaal los van Excel.
En het is geen enkel probleem om van meerdere tekst bestanden één CSV bestand te maken als je laat zien hoe het uiteindelijke CSV bestand er uit moet zien en welk scheidingsteken moet worden gebruikt.

Dat is dus een totaal overbodige handeling omdat Excel er niet voor nodig is.

Ah, oké. Op welke manier kan ik dat dan realiseren?
 
Zie eerst #18.
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan