Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro zum automatischen Daten einfügen
#1
Hallo
Ich benötige dringend Hilfe!
Ich will in einer Excel Datei automatisch untereinander Daten aus einem Ordner einlesen lassen.
Die Daten sollen in der gleichen Reihenfolge, wie im Ordner untereinander angeordnet werden. Bei den Daten handelt es sich um txt. Dateien mit Werten.
Die Dateinamen sind folgendermaßen angeordnet: P000_001, P000_002... usw.

Bei meinem aktuellen Quelltext werden zwar die Daten untereinander eingefügt, jedoch nicht in der gleichen Reihenfolge, wie im Ordner.

Sub Einlesen()
x = 1
d = Dir("F:\Neuer Ordner\VBA\P*.txt")

Do While d <> ""
    Open "F:\Neuer Ordner\VBA\" & d For Input As #1
        Do While Not EOF(1)
            Line Input #1, temp
            Cells(x, 1) = Replace(temp, vbTab, ";")
            x = x + 1
        Loop
    Close #1
    d = Dir
   
    Loop
  
 End Sub

Wäre über Hilfe sehr dankbar!
Gruß Sandro
Antworten Top
#2
Hallo,

es gibt mehrere Ansätze: sofern die Dateinamen, wie im gezeigten Fall, keine Umlaute und Leerzeichen haben, wäre der Rat:

Code:
cmd:>dir /?


mfg
Antworten Top
#3
(07.08.2018, 13:40)Fennek schrieb: Hallo,

es gibt mehrere Ansätze: sofern die Dateinamen, wie im gezeigten Fall, keine Umlaute und Leerzeichen haben, wäre der Rat:

Code:
cmd:>dir /?


mfg


Vielen Dank erstmal!
An welche Stelle setze ich denn diese Zeile?
Antworten Top
#4
entweder:

rechte Maustaste auf den Windows-Button: Eingabeaufforderung

oder

rechte Maustaste auf den Windows-Button: Ausführen: cmd.exe

Code:
dir /o-n c:\Oder_der_TextDateien\*.txt > c:\temp\alle.txt
Antworten Top
#5
Hallöchen,

ob die Dateinamen Leerzeichen usw. enthalten, ist doch egal, oder wieso nicht?
Wenn Du die Liste erzeugst, solltest Du noch die Option /b verwenden, ansonsten musst Du bei der Verarbeitung Datum und Zeit rausfiltern.
Und statt -n nur n verwenden, sonst ist die Reihenfolge umgedreht.

Statt der zusätzlichen Liste kannst Du die Dateinamen auch in einer temporären Tabelle speichern und sortieren.
Im Prinzip so:
Zitat:Sub Dateiliste()
Sheets.Add
x = 1
d = Dir("F:\Neuer Ordner\VBA\P*.txt")
Do While d <> ""
cells(x,1)=d
x = x + 1
d = Dir
Loop
'Dateiliste Sortieren ...
'Makro zum Daten einlesen aufrufen ...
'Temporäres Blatt löschen ...
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Frogger1986
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste