Excel mehrere CSV Dateien importieren

PC FREAKY

Commander
Registriert
März 2010
Beiträge
2.250
Hallo,

ich habe eine Excel Tabelle mit verschiedenen Tabellen.
Eine Tabelle heißt "Import"
In Diese würde ich gerne per Makro mehrere CSV Dateien importieren, die alle in einem Ordner sind.
Die Endung der csv Dateien ist leider .txt
Getrennt werden die Dateien mit Semikolon.
Die CSV Dateien sind Einzeiler.

Ich habe schon in Google dafür gesucht aber keine Vernünftige Lösung gefunden, die funktioniert.
Ich arbeite mit Excel 2007.

Viele Grüße,
PC FREAKY
 
Hab jetzt hier nur Exel 2013,bei 2007 sollte der weg ähnlich sein.
Daten---->Aus Text
 
Hallo,

ich habe für etwas ähnliches eine Batch-Datei:

echo. > alle.csv
for %%a in (*.csv) DO copy /b alle.csv+%%a alle.csv
Text-Datei als .bat speichern und ausführen.

Diese fügt alle .csv-Dateien in eine Datei zusammen. Die ist leider nicht genau das was du möchtest aber event. hilft es Dir ja weiter.

Sofern Du das CSV durch TXT ersetzt sollte es auch kein problem sein.
 
eselwald schrieb:
Hallo,

ich habe für etwas ähnliches eine Batch-Datei:


Text-Datei als .bat speichern und ausführen.

Diese fügt alle .csv-Dateien in eine Datei zusammen. Die ist leider nicht genau das was du möchtest aber event. hilft es Dir ja weiter.

Sofern Du das CSV durch TXT ersetzt sollte es auch kein problem sein.

Wenn nun anschließend alle .txt Dateien gelöscht werden, wäre es eine Lösung
Hat hier jemand eine Lösung?
Ergänzung ()

Für den Import habe ich nun folgenden Code:

Sub ImportCSV()
Dim strFileName As String, arrDaten, arrTmp, lngR As Long, lngLast As Long
Const cstrDelim As String = ";"

Dim Pfad
Pfad = "Z:\xxxx\daten\"
strFileName = "alle.txt"
strFileName = Pfad & strFileName

If strFileName <> "" Then
Application.ScreenUpdating = False
Open strFileName For Input As #1
arrDaten = Split(Input(LOF(1), 1), vbCrLf)
Close #1
For lngR = 1 To UBound(arrDaten)
arrTmp = Split(arrDaten(lngR), cstrDelim)
If UBound(arrTmp) > -1 Then
With ActiveSheet
lngLast = .Cells(Rows.Count, 1).End(xlUp).Row + 1
lngLast = Application.Max(lngLast, 3)
.Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1) _
= Application.Transpose(Application.Transpose(arrTmp))
End With
End If
Next lngR
End If
End Sub

Was ich nun noch gerne hätte:
Der Import beginnt immer in Zeile 3, besser wäre es aber wenn er in Zeile 3 anfängt.
Auch soll der Import automatisch immer im Tabellenblatt "Import" stattfinden.
 
Zuletzt bearbeitet:
Zurück
Oben