Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1496to1500
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

CSV Import mit GetOpenFilename

CSV Import mit GetOpenFilename
15.06.2016 20:45:41
Henner
Guten Abend,
ich möchte eine CSV Datei in mein bestehendes Blatt importieren. Dafür habe ich mir mit Hilfe des Recorders folgenden Code (Sub CSV_Import_Fix) aufgezeichnet, dieser funktioniert auch einwandfrei und bringt mir das gewünschte Format.
Nun möchte ich den Pfad der zu importierenden Datei auswählen können und nicht fix im Quellcode festlegen. Das habe ich mit der Erweiterung versucht (Sub CSV_Import_GOF) - beim Versuch ist es aber leider auch geblieben.
Laufzeitfehler 1004: Excel kann die Textdatei für die Aktualisierung des externen Datenbereichs nicht finden. Letzte Zeile (.Refresh BackgroundQuery:=False) wird gelb markiert.
Da der Code ohne FileDialog funktioniert kann ich mir das im Moment nicht erklären.
Meine Fragen:
1. Warum tritt dieser Fehler auf und wie behebe ich ihn?
2. Warum muss ich bei beiden Codes ".CommandType = 0" auskommentieren? (Sonst LFZ 5)
Vielen Dank für die Unterstützung
Schönen Abend und Gruss, Henner

Sub CSV_Import_Fix()
ActiveSheet.Cells.ClearContents
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Users\MaxMuster\Desktop\ImportMe.csv", _
_
Destination:=Range("$A$1"))
'.CommandType = 0
.Name = "CSV Import"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,   _
_
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = "."
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End Sub

Sub CSV_Import_GOF()
ChDir (ThisWorkbook.Path & "\")
strDatei = Application.GetOpenFilename(FileFilter:="CSV-Dateien (*.csv), *.csv", Title:="Bitte   _
_
Datei auswählen")
If strDatei  False Then
ActiveSheet.Cells.ClearContents
With ActiveSheet.QueryTables.Add(Connection:="TEXT;strDatei", Destination:=Range("$A$1"))
'.CommandType = 0
.Name = "CSV Import"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 65001
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = True
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,   _
_
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileDecimalSeparator = "."
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
End If
End Sub

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV Import mit GetOpenFilename
15.06.2016 20:54:01
Fennek
Hallo,
ungeprüft:
anstelle von
With ActiveSheet.QueryTables.Add(Connection:="TEXT;C:\Users\MaxMuster\Desktop\ImportMe.csv",
versuche

iPath = "c:\users\maxmustermann\desktop\"
iFile = "importme.csv"
With ActiveSheet.QueryTables.Add(Connection:="TEXT;" & iPath & iFile,
mfg

AW: CSV Import mit GetOpenFilename
15.06.2016 20:59:49
Henner
Hallo "Fennek",
der Code mit dem fixen Pfad funktioniert ja. Probleme habe ich nur in Zusammenhang mit dem FileDialog.
Trotzdem vielen Dank für Deine Hilfe, Gruss Henner

AW: noch ein Versuch
15.06.2016 21:08:23
Fennek
Hallo,
hier ist mein Muster für diese Aufgabe:

Sub csv_einlesen()
sFiles = Application.GetOpenFilename("csv-Dateien (*.csv),*.csv", MultiSelect:=True)
If IsArray(sFiles) Then
Debug.Print LBound(sFiles), UBound(sFiles)
For Each ar In sFiles
i = i + 1
Cells(i, 1) = ar
Next ar
End If
End Sub
mfg

Anzeige
AW: noch ein Versuch
15.06.2016 21:12:07
Henner
Hallo Fennek,
Dein Code schreibt mir nur den Pfad der Quelldatei in die Zelle A1..
Gruss Henner

AW: Pfadname?
15.06.2016 21:35:59
Fennek
Hallo,
vielleicht hätte ich doch den Text besser lesen sollen...
Ebenfalls ungeprüft:
wenn die csv-Datei geöffnet ist, versuche
sPath = workbooks.path
wobei die csv das active Workbook sein muss.
Aber: bei Datei öffnen kennst du doch den Pfad, also so ganz klar ist mir die Frage immer noch nicht.
mfg

AW: Pfadname?
15.06.2016 21:53:58
Henner
Hallo Fennek,
die csv Datei ist nicht geöffnet. Ich möchte in der Tabelle auf eine Schaltfläche klicken können. Anschliessend soll sich ein FileDialog öffnen wo ich die gewünschte csv Datei auswählen kann.
Diese soll dann in das aktive Tabellenblatt importiert werden. Ich weiss leider nicht wie ich es noch genauer beschreiben soll...
Vielen Dank & Gruss, Henner

Anzeige
nur 1 kleines Detail
16.06.2016 00:59:21
Michael
Hi zusammen,
im unteren Code steht:

With ActiveSheet.QueryTables.Add(Connection:="TEXT;strDatei", Destination:=Range("$A$1"))
Gib mal aus: MsgBox "TEXT;strDatei".
Der Punkt ist, daß strDatei eine VARIABLE ist, die Du hier in den TEXT reinwurschtelst.
Richtig sollte es heißen: MsgBox "TEXT;" & strDatei
Schöne Grüße,
Michael

AW: nur 1 kleines Detail (ERL)
16.06.2016 18:11:36
Henner
Hi Michael
Stimmt, kann nicht funktionieren. Vielen Dank für die Lösung! Gruss Henner

(ERL) - freut mich, danke f.d. Rückmeldung
17.06.2016 12:19:51
Michael
& Gruß zurück, Henner,
Michael
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge