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

Opgelost Txt bestand inlezen in Excel

Dit topic is als opgelost gemarkeerd
Dus bestaat het gezochte bestand niet.
Zet op de regel net voor de foutregel eens dit en draai de macro.
Code:
MsgBox "D:\download\blad1.txt" & arr(i, 1)
Wat zie je dan?
 
dan zegt het dat er een bestand opgehaald wordt met een totaal andere naam als ik dan op ok klik krijg ik de melding bestand niet gevonden
 
En ik vroeg dus wat er dan in die messagebox staat.
 
Dat komt uit een cel in kolom A van het werkblad waar de macro op werkt en staat in de VBA code in de arary arr.
Heb je dat bestand wel in D:\download ?
 
initieel stond daar
c00 = CreateObject("scripting.filesystemobject").opentextfile("J:\download\" & arr(i, 1)).readall
dus ja, die arr(i,1) plaatst die "drachten..." erin.
Plaats anders een bestandje met 5 filenamen in je 1e blad en het pad, dat zal gemakkelijker praten
 
Of al de te verwerken bestanden in een submapje zetten en er met behulp van DIR doorgaan?
Zomaar een suggestie...
 
Ik krijg morgen iemand op bezoek welke hopelijk mij verder kan helpen, ik laat nog weten hoe dat is gegaan.

Ik wil je wel bedanken dat je zo veel gedult hebt om mensen te helpen geheel be;langenloos.

Groet, Peter
 
Iedereen die hier heeft gereageerd kon jou gegarandeerd verder helpen, maar dan had er wel een ietsje meer medewerking van jouw kant mogen komen!
 
Enigmasmurf, graag uitleg over wat je zei, ik heb eerst in het begin van mijn vraag de bestanden waarover het gaat ge upload. Tevens uitleg gegeven met mijn wensen, er zijn meerdere oplossingen gegeven waaronder de laatste van dbn, die laatste werkt dus niet. Hij gaf eerder een code welke eigenlijk prima werkte maar daar kon ik maar 1 bestand mee openen. Ik heb meerdere txt bestanden welke ik wil inlezen in excel. Dus ik zou graag de macro aangepast willen hebben zodat ik uit verschillende mappen txt bestanden kan inlezen met verschillende namen.ik ben echt hartstikke blij met de hulp welke mij geboden is. Dus ik snap niet echt je opmerking niet dat ik te weinig medewerking gegeven heb. Je mag, graag zelfs commentaar geven maar het commentaar begrijp ik helaas niet. Kan natuurlijk gewoon ook aan mij liggen.
Toch bedankt voor je bericht. Groet, Peter
 
Deze code van snb doet het prima, alleen kan er maar een bestand met de naam drachten met url.txt geopend worden.

Het path J:\download is het path van snb, dus die moet gewijzigd worden in het path waar de gebruiker zijn txt bestand heeft staan.
Dat path is bij mij dus D:\download

Dit ter aanvulling .

Groet, Peter


Sub M_snb()<br> c00 = CreateObject("scripting.filesystemobject").opentextfile("J:\download\Drachten met url.txt").readall<br> sn = Split(c00, "&lt;wpt")<br> ReDim sp(UBound(sn), 20)<br> <br> For j = 1 To UBound(sn)<br> st = Split(sn(j), Chr(34))<br> sp(j - 1, 0) = st(1)<br> sp(j - 1, 1) = st(3)<br> st = Filter(Filter(Filter(Filter(Split(Split(Split(sn(j), "&lt;name")(1), "&lt;/gpxx:W")(0), vbCrLf), "&lt;/"), "&lt;cmt", 0), "Disp", 0), ":A", 0)<br> <br> For jj = 0 To UBound(st)<br> sp(j - 1, jj + 2) = Split(Split(st(jj), "&gt;")(1), "&lt;")(0)<br> Next<br> Next<br> <br> Cells(1).Resize(UBound(sp), UBound(sp, 2)) = sp<br>End Sub
 
VBA is niet helderziend.
Het moet weten waar de bestanden staan die moeten worden ingelezen.
Je doet er verstandig aan die bestanden eerst allemaal in 1 eigen directory/folder te zetten.
Bijv. D:\Garmin\
dan kun je in VBA alle .txt bestanden in deze directory inlezen met de VBA opdracht
Code:
Dir("D:\Garmin\*.txt")

Wij wachten nu op jou:
- totdat je alle te gebruiken .txt bestanden in 1 folder hebt gezet.
- je ons verteld hebt hoe die folder op jouw systeem heet.
 
Inmiddels in de map D:\mijn documenten\garmin

de te gebruiken bestanden neergezet.
Die bestanden hebben de naam Blad1.txt en Drachten met url_1.txt
Groet, Peter
 
Uitgebreid (BBCode):
Sub M_snb()
     Dim sMap, it

     sMap = "D:\mijn documenten\garmin\"
     arr = Array("Blad1.txt", "Drachten met url_1.txt")

     For Each it In arr
          MsgBox "openen van " & vbLf & sMap & it
          c00 = CreateObject("scripting.filesystemobject").opentextfile(sMap & it).readall
          sn = Split(c00, "<wpt")
          ReDim sp(UBound(sn), 20)

          For j = 1 To UBound(sn)
               st = Split(sn(j), Chr(34))
               sp(j - 1, 0) = st(1)
               sp(j - 1, 1) = st(3)
               st = Filter(Filter(Filter(Filter(Split(Split(Split(sn(j), "<name")(1), "</gpxx:W")(0), vbCrLf), "</"), "<cmt", 0), "Disp", 0), ":A", 0)

               For jj = 0 To UBound(st)
                    sp(j - 1, jj + 2) = Split(Split(st(jj), ">")(1), "<")(0)
               Next
          Next

          With Sheets("blad1").Cells(Rows.Count, "A").End(xlUp).Offset(2).Resize(UBound(sp), UBound(sp, 2))
               .Value = it
               .Offset(, 1).Value = sp
          End With
     Next
End Sub
 
Dank je wel Cow18 voor je oplossing.
Ik wil graag dat als ik de macro draai dat ik dan naar een map kan bladeren en daar een txt bestand kan kiezen om in te lezen ik Excel.
De huidige oplossing laat de 2 bestanden achter elkaar inlezen maar ik de praktijk hoef ik maar een txt bestand in te lezen.

De volgende keer dat ik de macro draai kan dat een txt bestand zijn in een andere map en het txt bestand kan dan een totaal andere naam hebben als de 2 welke nu zijn gedefieerd.
Kortom ik wil graag elke map kunnen kiezen en elk txt bestan kunnen openen. Wel heeft dat txt bestand altijd dezelfde indeling als de bestanden uit het voorbeeld.

Ik hoop dat ik het nu goed heb uitgelegd en dank voor je inzet en vooral voor je gedult.

Groet, Peter
 
Zo?
Code:
Sub M_snb()
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "Kies een bestand"
        .Filters.Clear
        .Filters.Add "TXT bestanden", "*.txt"
        If .Show Then
            Bst = .SelectedItems(1)
        Else
            Exit Sub
        End If
    End With

    c00 = CreateObject("scripting.filesystemobject").opentextfile(Bst).readall
    sn = Split(c00, "<wpt")
    ReDim sp(UBound(sn), 20)

    For j = 1 To UBound(sn)
         st = Split(sn(j), Chr(34))
         sp(j - 1, 0) = st(1)
         sp(j - 1, 1) = st(3)
         st = Filter(Filter(Filter(Filter(Split(Split(Split(sn(j), "<name")(1), "</gpxx:W")(0), vbCrLf), "</"), "<cmt", 0), "Disp", 0), ":A", 0)

         For jj = 0 To UBound(st)
              sp(j - 1, jj + 2) = Split(Split(st(jj), ">")(1), "<")(0)
         Next
    Next

    With Sheets("blad1").Cells(Rows.Count, "A").End(xlUp).Offset(2).Resize(UBound(sp), UBound(sp, 2))
         .Value = it
         .Offset(, 1).Value = sp
    End With
End Sub
 
Ja edmoor, dit is exact wat ik wilde. Super bedankt voor je hulp, ik ben er reuze blij mee.
Dank iedereen wie meegedacht heeft.

Groet, een blije Peter
 
En dank aan snb voor de code voor het correct inlezen van een dergelijk bestand :)
 
Terug
Bovenaan Onderaan