Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1696to1700
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Dateinamen einlesen

Dateinamen einlesen
22.06.2019 13:16:46
Manu
Hallo alle Zusammen,
ich bin ein absoluter VBA Neuling und verzweifle leider gerade ein bisschen an einer wohl recht einfachen Aufgabe. Dieses Problem ist so zwar schon öfter da gewesen allerdings habe ich mir durch die anderen Foreneinträge nicht weiterhelfen können. Mit Hilfe diverser Webseiten hab ich mir ein Makro geschrieben das an sich funktioniert: Hier ging es erstmal darum alle txt Dateien eines Ordners in einer Exceltabelle hintereinander einzulesen und in überall wo ein Leerzeichen ist, soll eine neue Spalte begonnen werden. Diese sah wie folgt aus:
Sub einlesen()
Z = Sheets(1).UsedRange.Rows.Count
d = Dir("C:\Users\manu\Diiodmethan\")
'alle txt-Dateien Zeilenweise einlesen
Do While d  ""
Open "C:\Users\manue\OneDrive\Desktop\Alles2\Diiodmethan\" & d For Input As #161
'filepath = Dir("C:\Users\manu\Diiodmethan\" & d)
Do While Not EOF(161)
Line Input #161, temp
Cells(Z + 1, 1) = temp
Z = Z + 1
Loop
Close #161
d = Dir
Loop
'Überall von in der txt ein Space war soll nun eine neue Zelle begonnen werden
For j = 1 To Z
Text = Split(Cells(j, 1), vbTab)
For i = 0 To UBound(Text)
Cells(j, i + 1) = Text(i)
Next
Next
Sheets(1).UsedRange.Columns.AutoFit
End Sub

Jedoch sind dies eine Reihe an Messwerten die ohne das Wissen aus welcher Messreihe sie stammen wertlos sind. Deshalb wollte ich, dass der Namen der gerade ausgelesenen Datei in der ebenso ausgelesen und in eine Zelle vor dem restlichen Text eingefügt wird. Hier hängt sich nun allerdings das Programm immer wieder auf. Der Fehler müsste sich irgendwo in den fett gedruckten Zeilen verstecken. Für jeglichen Tipp wäre ich unglaublich dankbar!
Sub einlesen()
Z = Sheets(1).UsedRange.Rows.Count
d = Dir("C:\Users\manu\Diiodmethan\")
'Dim filepath As String
'alle txt-Dateien Zeilenweise einlesen
Do While d  ""
Open "C:\Users\manue\OneDrive\Desktop\Alles2\Diiodmethan\" & d For Input As #161
 'filepath = Dir("C:\Users\manu\Diiodmethan\" & d)
Do While Not EOF(161)
Line Input #161, temp
Cells(Z + 1, 1) = temp
Z = Z + 1
Loop
'Extra Zeile für die Überschrift der Datei
Z = Z + 1
'Dateiname als Überschrift für die eingefügte Tabelle
 'ThisWorkbook.Sheets(1).Cells(Z + 1, 1).Value = filepath
'filepath = Dir()
Close #161
d = Dir
Loop
'Überall von in der txt ein Space war soll nun eine neue Zelle begonnen werden
For j = 1 To Z
Text = Split(Cells(j, 1), vbTab)
For i = 0 To UBound(Text)
Cells(j, i + 1) = Text(i)
Next
Next
Sheets(1).UsedRange.Columns.AutoFit
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Dateinamen einlesen
22.06.2019 13:35:30
onur
Bau mal direkt unter Zeile
filepath = Dir("C:\Users\manu\Diiodmethan\" & d)

einen Haltepunkt ein und lese filepath aus - Dann siehst du, was der Fehler ist
AW: Dateinamen einlesen
22.06.2019 13:38:08
onur
Lass bei
filepath = Dir("C:\Users\manu\Diiodmethan\" & d)

das Dir() um den Pfad weg.
AW: Dateinamen einlesen
22.06.2019 16:19:20
Manu
Hi Onur!
Danke erstmal für deine Rückmeldung! :)
Also ich habe das mal Versucht und mir wird der Pfad der einzelnen Dateien angezeigt, dabei wird jedoch jedes Mal eine Datei übersprungen.
Mir ist jedoch dennoch nicht klar wieso dieser Pfad nicht in die Zelle geschrieben wird, sondern sich das Programm aufhängt. Wieso er beim auslesen immer eine Datei überspringt stellt mich vor eine weitere Frage..
Hättest du eine Ahnung woran das liegen könnte?
Anzeige
AW: Dateinamen einlesen
22.06.2019 16:42:38
onur
Poste doch mal die (Beispiel-) Datei.
AW: Dateinamen einlesen
22.06.2019 22:43:19
Manu
Das mit dem einlesen der Datei funktioniert ja gut :) Oder geht es dir um ein Beispiel für den Namen der Datei? Ein Beispiel hierfür wäre 151_Results - die sind der Reihe nach durch nummeriert.
AW: Dateinamen einlesen
22.06.2019 17:11:24
onur

d = Dir("C:\Users\manu\Diiodmethan\")

schreibt den NAMEN der erstbesten Datei, die im Ordner gefunden wird in d hinein und
Dir("C:\Users\manu\Diiodmethan\" & d) 

gibt nur den NAMEN der Datei d aus dem Ordner "C:\Users\manu\Diiodmethan\" zurück, also das selbe wie oben noch einmal.
Also nur den NAMEN und keinen PFAD.
Anzeige
AW: Dateinamen einlesen
22.06.2019 22:44:57
Manu
Hm aber dann passt das doch.. er sollte an der Stelle ja auch nur den Namen wiedergeben.
AW: Dateinamen einlesen
22.06.2019 22:52:51
onur
Wieso dann nicht direkt nur "d"?
Und wieso heisst es
filepath = Dir("C:\Users\manu\Diiodmethan\" & d)
?
Lass doch endlich mal das
" & d"
weg und schreibe nur
Dir("C:\Users\manu\Diiodmethan\") .
AW: Dateinamen einlesen
22.06.2019 17:15:22
onur
Wenn du ALLE Dateien im Ordner nacheinander abrufen willst, musst du schon "& d" weglassen.
AW: Dateinamen einlesen
22.06.2019 22:59:05
Manu
Das habe ich gerade mal probiert, allerdings hängt er sich dabei wieder auf :(
Hättest du einen andere Idee wie ich die Dateinamen einfüge? Dann könnte ich die Zeilen, an denen es gerade hängt rauslöschen.
Anzeige
AW: Dateinamen einlesen
22.06.2019 23:21:14
onur
Poste doch endlich die Datei, denn der Code ist nur die halbe Miete.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige