ich habe folgendes Problem:
In einer Arbeitsmappe liste ich mir die in Frage kommenden Dateien auf einem Arbeitsblatt in den Zellen B2-B10 auf. Daraus kann ich den kompletten Pfad zur zu importierenden Datei auslesen und in VBA verwenden. Mit folgendem Code soll dann jeweils ein neues Arbeitsblatt eingefügt und die Datei importiert werden:
***Code Anfang***
Option Explicit
Public file_fullname As String
Public file_name As String
Public file_path As String
Public s_name As String
Public sname As String
Sub file_check()
Dim a As Byte
Dim i As Byte
Dim ri As Byte
Worksheets("files").Activate
file_path = Range("a1").Text
a = Selection.Count
For i = 1 To a
ri = i + 1
file_name = Sheets("files").Range("B" & ri).Text
sname = Mid(file_name, 53, 10)
s_name = Right(sname, 4) & Mid(sname, 3, 3) & "-" & Left(sname, 2)
Debug.Print s_name
file_fullname = file_path & file_name & ".asc"
Debug.Print file_fullname
'Workbooks.Open file_fullname
Sheets.Add after:=Sheets(Sheets.Count), Type:=xlWorksheet
ActiveSheet.Name = s_name
Call file_import
Next i
End Sub
Sub file_import()
With ActiveSheet.QueryTables.Add(Connection:="TEXT;file_fullname" _
, Destination:=Range("A1"))
.Name = "file_name"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 932
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Cells.Select
Selection.ColumnWidth = 11
Range("A1").Select
End Sub
***Code Ende***
Das Problem ist, dass er jedesmal zwar ein einziges neues Blatt mit dem richtigen Namen anlegt, aber den Import abbricht mit der Meldung:
Laufzeitfehler '1004':
Excel kann die Textdatei für die Aktualisierung des externen Datenbereichs nicht finden.
Vergewissern Sie sich, dass die Textdatei nicht verschoben oder umbenannt wurde.
Wiederholen Sie anschließend die Aktualisierung.
Sobald ich den Pfad direkt in den Code eingebe, ohne Verweis auf eine Variable, geht es. Weiter nicht.
Wer kann mir hier helfen?
Gruß, Manfred.