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

importeren van veel/grote txt bestanden in excel

Status
Niet open voor verdere reacties.

jorrit126

Gebruiker
Lid geworden
9 feb 2007
Berichten
48
Ik zit hier met een probleempje. Op internet heb ik al dagen/weken zitten zoeken naar een passende oplossing, helaas kan ik niets vinden en probeer ik het op hoop van zegen hier!

Het probleem is als volgt:
We hebben hier op mijn werk een programma voor labels in de farmaceutische industrie.
Op dit moment slaat de software alle tekst bestanden van de labels op als .txt, nu wil ik dit allemaal samenvoegen in excel zodat ik het daarna kan gebruiken in een access database (ivm aanpassingen die doorgevoerd moeten worden op meerdere etiketten).

Het zijn rond de 3800 .txt bestanden alleen hebben ze allemaal verschillende inhoud.
Ik heb al een macro om de bestanden te importeren in excel, mijn kennis van VB is alleen nog niet groot genoeg om hem precies zo aan te passen dat ik er tevreden mee ben.
De text bestanden hebben allemaal een verschillende inhoud, sommige bevatten hele lappen tekst andere alleen getallen.

Nu wil ik de output in excel met deze layout krijgen:
naam bestand| locatie bestand (hyperlink) | Inhoud bestand

vb:
26894a| c:/txt/26894a.txt | dit is een voorbeeld
26894b| c:/txt.26894b.txt |
40%
80%
28291.txt| c:/txt/28291.txt | dit
is

een voorbeeld 123

Omdat de inhoud van de tekst bestanden vaak meerdere regels met soms lege tussenregels heeft wil ik deze in 1 cel weergeven (voor het overzicht).

Het zou heel fijn zijn als iemand me hierbij zou kunnen helpen, want ik kom er echt niet meer uit! En om nou een cursus VBA te nemen voor dit eenmalige klusje is me ook iets te veel.

BVD,
Jorrit
 
Code:
Sub test()
    Dim myDir As String, fn As String, txt As String, x
    myDir = "C:\Imports\"
    fn = Dir(myDir & "\*.txt")
    Do While fn <> ""
        txt = CreateObject("Scripting.FileSystemObject").OpenTextFile(myDir & "\" & fn).ReadAll
        x = Application.Transpose(Split(txt, vbCrLf))
        Sheets(1).Range("a" & Rows.Count).End(xlUp)(2).Resize(UBound(x, 1)).Value = x
        Sheets(1).Range("b" & Rows.Count).End(xlUp)(2).Resize(UBound(x, 1)).Value = fn
        fn = Dir()
    Loop
End Sub

Dit is de code die ik nu gebruik. Deze werkt wel, maar geeft een foutmelding:
Automatiseringsfout - De verbindingen van het aangeroepen object met de clients zijn verbroken.
Ik heb de formule stap voor stap voor stap gecontroleerd maar hij geeft niet aan waar de fout zit, en ik kan hem er zelf ook niet uithalen:confused:

Wat ik ook niet voor elkaar krijg is om 1 tekstbestand in 1cel te plaatsen. Hij plaatst ze nu in meerdere cellen onder elkaar.
 
Niet geteste code, maar zal wel een aantal verbeteringen bevatten tov de vorige code:

Code:
Sub test()
    
    Const myDir As String = "C:\Imports\"
    
    Dim fn As String, txt As String
    
    fn = Dir(myDir & "*.txt")
    Do While fn <> ""
        txt = CreateObject("Scripting.FileSystemObject").OpenTextFile(myDir & fn).ReadAll
        Sheets(1).Range("A" & Rows.Count).End(xlUp).Offset(1) = Left(fn, Len(fn) - 4)
        Sheets(1).Range("A" & Rows.Count).End(xlUp).Offset(, 1) = myDir & fn
        Sheets(1).Range("A" & Rows.Count).End(xlUp).Offset(, 2) = txt
        fn = Dir()
    Loop
End Sub
 
Wigi ik heb je code gebruikt en hij werkt gedeeltelijk!
Hij importeert nu ongeveer 500 bestanden en geeft dan de foutmelding:
fout 62- Invoer na einde van bestand

Heeft dit te maken met het grote aantal van de bestanden/inhoud? want als ik het test met 20 tekstbestanden doet de macro het zonder problemen:confused:
Alvast bedankt!
 
Niemand?
Ik denk dat ik de end of file (EOF) functie moet gebruiken, ik krijg deze alleen niet werkend met mijn code:(
 
Wigi ik heb je code gebruikt en hij werkt gedeeltelijk!
Hij importeert nu ongeveer 500 bestanden en geeft dan de foutmelding:
fout 62- Invoer na einde van bestand

Heeft dit te maken met het grote aantal van de bestanden/inhoud? want als ik het test met 20 tekstbestanden doet de macro het zonder problemen:confused:
Alvast bedankt!

Wat is er dan speciaal aan de file die deze foutmelding geeft? Heb je al eens geprobeerd om stap voor stap delen uit de file te laten, en opnieuw op te laden? Evt. op een beperkte set van bestanden om sneller te kunnen testen en debuggen?
 
Wigi bedankt voor de tip!
Ik ben een halve dag bezig geweest met het uitzoeken van dit probleem,
en uiteindelijk de veroorzaker gevonden, de macro bleef steken op 3 lege txt files!
deze uit de map gegooid en hij werkte daarna als een trein:)
heel erg bedankt voor je hulp Wim
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan