VBA Import von .ASC Dateien

Bild

Betrifft: VBA Import von .ASC Dateien von: Manfred
Geschrieben am: 23.03.2005 09:27:37

Hallo,

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


Betrifft: AW: VBA Import von .ASC Dateien von: Frank Domke
Geschrieben am: 23.03.2005 10:30:30

Hallo Manfred,
versuch es mal so:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & file_fullname & """" _
, Destination:=Range("A1"))
Viel Erfolg
Frank.


Bild


Betrifft: AW: VBA Import von .ASC Dateien von: Manfred
Geschrieben am: 23.03.2005 10:43:14

Hallo,

ich habe das nach deinem Vorschlag geändert. Nun kommt folgende Fehlermeldung:

Laufzeitfehler '1004':


Auf die Datei konnte nicht zugegriffen werden. Versuchen Sie die folgenden

Lösungsvorschläge:


• Überprüfen Sie, ob der angegebene Ordner existiert.
• Stellen Sie sicher, dass der Ordner, in dem sich die Datei befindet, nicht
schreibgeschützt ist.

• Vergewissern Sie sich, dass der Dateiname keines der folgenden Zeichen enthält: < >
? [ ] : | oder *

• Der Dateiname darf nicht länger sein als 218 Zeichen.

Ich habe dann einmal über Workbooks.open probiert, ob meine Variable überhaupt die richtige Datei öffnet, und das klappt. Warum nicht der Import?!?!?!?

mfg

Manfred.


Bild


Betrifft: AW: VBA Import von .ASC Dateien von: Frank Domke
Geschrieben am: 23.03.2005 14:19:50

Hallo Manfred,
ich hatte den Code nicht getestet sondern nur gesehen, dass Du die Variable im String verpackt hattest. Damit man Dein Problem nachstellen kann, kopiere doch mal 3 Zeilen Deiner Accii Datei in den Thread!
Gruß
Frank.


Bild


Betrifft: AW: VBA Import von .ASC Dateien von: Frank Domke
Geschrieben am: 23.03.2005 14:27:24

Hallo Manfred,
so müsste es klappen:

Dim ws As Worksheet
Set ws = ActiveSheet
With ws.QueryTables.Add(Connection:="TEXT;" & file_fullname & """", _
Destination:=ws.Cells(1, 1))
' ....
End With
Viel Erfolg
Frank.


 Bild

Beiträge aus den Excel-Beispielen zum Thema "VBA Import von .ASC Dateien"