ich habe im Prinzip das gleiche Problem wie im Beitrag "2011-12-30 19:05:53 viktor bruckman Datenimport aus mehreren Textdateien". Der einzige Unterschied ist, dass die Dateien in verschiedenen Ordnern gespeichert werden. Jeder Anwender soll dann seinen Ordner auswählen können und das Programm importiert die Daten in ein neues Worksheet. Sobald ich allerdings Chdrive und Chdir durch eine andere Option(application.fileDialog oder This.Workbook.Path9 ersetze, wird zwar der erste Dateiname,an der richtigen Stelle, ausgegeben im folgenen erhalte ich aber den Laufzeitfehler 53 "Datei nicht gefunden". Da er den Namen im ersten durchgang findet vermute ich den Fehler irgendwo in dem Loop.
Merkwürdigerweise klappt der Code alle paar Versuche für ein paar durchgänge nur um dann wieder den Fehler anzugeben. (müssen vielleicht bestimmte Variabeln wieder auf 0 gesetzt werden?)
Ich hoffe das ist für euch nur ein kleines Problem und würde mich über Lösungsvorschläge sehr freuen.
Vieln Dank im Voraus und anbei die Quelle meiner Verzweiflung
Sub Import_DPT_Vertex70_Auswahl()
Dim sp, ze, i, ws, wz As Long
Dim fn, pfads, fileart, strTmp, strTxt As String
Dim x As Variant
Dim sh As Worksheet
Set sh = ActiveWorkbook.Sheets.Add(After:=Worksheets(Worksheets.Count))
ActiveSheet.Name = Format(Now, "dd/mm/yy hh-mm")
With Application.FileDialog(msoFileDialogFolderPicker)
If .Show = -1 Then
pfads = .SelectedItems(1)
End If
If pfads = "" Then
Exit Sub
End If
End With
'pfads = ThisWorkbook.Path (als Alternativweg)
Cells(1, 1) = pfads
fileart = "*.dpt"
Cells(5, 2) = "Wellenzahl"
With sh
wz = 6
ws = 2
ze = 3
pfads = Cells(1, 1)
fn = Dir(pfads & "\" & fileart)
Do While fn ""
sp = 2
.Cells(5, ze).Value = fn
Open fn For Input As #1
Do While Not EOF(1)
Line Input #1, strTxt
x = Split(strTxt, ",")
For i = 1 To UBound(x)
.Cells(sp + 4, ze).NumberFormat = "0.00000"
.Cells(sp + 4, ze) = x(i)
.Cells(wz, ws) = x(o)
Next i
sp = sp + 1
wz = wz + 1
Loop
Close
sp = 2
ze = ze + 1
fn = Dir()
Loop
Close #1
End With
End Sub