Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: VBA csv Import

VBA csv Import
04.11.2015 10:51:12
David
Hallo,
ich möchte über VBA eine csv Datei öffenen.
Die Daten darin waren durch das Zeichen | getrennt, ich habe sie aber bereits getrennt abgespeichert. Jeder Wert steht also schon in einer seperaten Spalte.
Mein Code sieht so aus:
Quelle = Application.GetOpenFilename( _
FileFilter:="XLSX Files (*.xlsx),*.xlsx,CSV Files (*.csv),*.csv", _
Title:="Select a file or files", _
MultiSelect:=False)
Da ich über die gleiche Funktion auch xlsx datei öffnen möchte, habe ich beide Formate hinerelgt (falls das so geht?!)
Wenn ich den Code so ausführen lasse und die csv Datei öffne, sieht sie aber ganz anders aus, als wenn ich sie ganz nomal über den Explorer öffene.
Jetzt sind plötzlich wieder Daten verbunden (mit ; verknüpft).
Wa mach ich falsch?
Danke und Gruß
David

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA csv Import
05.11.2015 11:43:51
matthias
Hallo David,
das liegt daran, dass eine CSV-Datei, mit Excel geöffnet, konvertiert wird denn Excel denkt selbständig mit. Deshalb wird es auch schön angezeigt.
Importierst du deine CSV nun, so folgt Excel stumpf der Import-Routine, was zu deinem Problem führt. Das liegt aber nicht an Excel, sondern an deinen Einstellungen für den Import.
In deinem Code sollte etwas in der Art vorkommen, richtig?:
With ActiveSheet.QueryTables.Add(Connection:="TEXT;Quelle", _
Destination:=Range("$A$1"))
.Name = "Beispielname"
.FieldNames = True
.RowNumbers = False
End With

Dort musst du beim Import beide Trennzeichen angeben.
        .TextFileSemicolonDelimiter = True
.TextFileOtherDelimiter = "|"
lg Matthias

Anzeige
AW: VBA csv Import
06.11.2015 14:04:00
David
Hallo,
danke für die Antwort:
mein Code sieht komplett so aus:
Function DateiÖffnen()
Dim Quelle As Variant
ChDrive ("G:\")
ChDir ("G:\XXX")
'Quelle = Application.GetOpenFilename("Microsoft Excel-Dateien,*.xlsx")
Quelle = Application.GetOpenFilename( _
FileFilter:="XLSX Files (*.xlsx),*.xlsx,CSV Files (*.csv),*.csv", _
Title:="Select a file or files", _
MultiSelect:=False)
If Quelle  False Then
Workbooks.Open Filename:=Quelle, UpdateLinks:=1
DateiÖffnen = True
Else
DateiÖffnen = False
End If
End Function

An welcher Stelle müsste denn der Code von Matthias hier ergänzt werden?
Danke udn Gruß
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige