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

Import CSV

Import CSV
Torsten
Ich möchte mittels Makro eine CSV Datei importieren. Mein Problem ist, dass die Datenblöcke Semikolon getrennt sind, aber innerhalb auch Zeilenumbrüche vorkommen. Dies soll nicht dazu führen, dass diese Daten in eine separate Zelle (z.B. Spalte A nächste Zeile) geschrieben werden.
Nachfolgend was ich habe:
With wksSheet.QueryTables.Add(Connection:= _
sTemp, Destination:=Range("A1"))
.Name = "detailConn"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = False
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
Was mir fehlt, ist der Delimiter o.ä. für die Zeilenumbrüche. Welcher davon ist es? Fehlt er noch? Oder gibt es keinen?
Alternativ gerne die funktionierende Version von:
'' open text file (should be csv, but there is a bug in MS Excel...)
' Workbooks.OpenText FileName:=sFile, DataType:=xlDelimited, _
' TextQualifier:=xlTextQualifierDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
' Semicolon:=True, Comma:=False, Space:=False, Other:=False
Danke.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Import CSV
12.10.2009 16:03:45
JogyB
Hi.
Probier das mal aus:
Sub openCSV()
Sub openCSV()
Dim daTei
daTei = Application.GetOpenFilename("CSV-Dateien (*.csv), *.csv")
If Not VarType(daTei) = vbBoolean Then
Workbooks.Open Filename:=daTei, Local:=True
End If
End Sub
Bei mir funktioniert das auch bei Zeilenübrüchen, da die in einer CSV-Datei mit Anführungszeichen eingerahmt sind. Ist das bei Dir nicht der Fall, dann ist keine Unterscheidung möglich, ob es ein Zeilenumbruch in einer Zelle oder der Beginn der nächsten Zeile ist.
Gruss, Jogy
AW: Import CSV
12.10.2009 16:24:07
Torsten
Workbooks.Open Filename:=daTei
Das habe ich ganz am Anfang mal probiert, hat aber nicht funktioniert. Wohin man sich dann verirrt - sieht man oben!
Danke für die Antwort. Ich habe es dann nochmal damit probiert und es geht. Warum weiß ich nicht. Wenn ich mich an den Haken oder das ursprüngliche Problem wieder erinnere, schreibe ich wieder einen Beitrag zum Forum...
Anzeige
AW: Import CSV
12.10.2009 16:33:57
JogyB
Hi.
Der Haken dabei ist das Local:=True
Ohne das nimmt er das Komma als Trennzeichen, damit das Semikolon.
Das mit den CSV-Dateien ist eine blöde Geschichte, da wohl irgendwann mal jemand gemeint, dass man bei deutschsprachigen Dateien unbedingt das Semikolon nehmen muss, um das Dezimalkomma zu erhalten. Dadurch gibt es aber kein einheitliches CSV-Format mehr, was mehr Probleme verursacht, als die Umwandlung von Punkt zu Komma - die ist kein ja Problem, wenn man weiß, dass man sie machen muss.
Übrigens gibt es auch noch die Möglichkeit, das Trennzeichen am Beginn einer CSV-Datei zu schreiben. Dazu einfach
sep=;
als erste Zeile in die CSV-Datei einfügen, dann funktioniert es - zumindest bei Excel - unabhängig von der Local-Einstellung korrekt.
Gruss, Jogy
Anzeige
Hier noch eine Möglichkeit mit Schema.ini
12.10.2009 17:53:47
Tino
Hallo,
wenn das verwendete Trennzeichen Deiner csv Datei nicht dem von Deinem Systemstandart übereinstimmt, kannst Du dies auch mittels Schema.ini einstellen und einlesen.
Hier mal ein Beispiel, hier wird dass Semikolon in der csv verwendet.
https://www.herber.de/bbs/user/65053.zip
Gruß Tino
AW: Hier noch eine Möglichkeit mit Schema.ini
13.10.2009 08:09:56
Torsten
Vielen Dank für Deine Antwort. Das Trennzeichen ist immer fest ein Semikolon. Interessant wird es nur, wenn andere mögliche Trennzeichen ins Spiel kommen, welche aber ignoriert werden sollen (siehe Zeilenumbruch).

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige