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

Import von .csv Dateien in Excel

Import von .csv Dateien in Excel
06.03.2013 16:41:49
.csv
Hallo,
ich habe ein Problem mit dem Import von .csv Dateien in meine vorhandene Arbeitsmappe und der Weiterverarbeitung der darin enthaltenen Daten. Ich möchte die .csv per Menü auswählen können und dann mit den enthaltenen Daten darin weiterrechnen. Die .csv Dateien sind immer nach dem selben Prinzip aufgebaut und die einzelenen Werte sind durch Semikolons getrennt, von daher kann man die Berechnungen per Makro auch durchführen lassen ohne umbedingt die .csv Tabelle sehen zu müssen.
Ich habe es schon probiert die Dateien per Import der Mappe hinzuzufügen und das per Recorder aufzuzeichnen, aber ich bekomme es nicht hin dem aufgezeichneten Makro ein Auswahlfestner hinzuzufügen.
Wenn ich die Datei mit Worksheet.OpenText versuche zu importieren, dann wirft er alle Daten in die erste Spalte, obwohl ich in die Parameter das Semikolon als Trennzeichen eingetragen habe.
Daher habe ich versucht per TextStream das Wort "sep=;" vor die Daten hinzuzufügen, weil das das Problem mit den Semikolon-getrennten-Werten lösen würde beim Import, aber auch das hat nicht hingehauen.
Über jegliche Hilfe würde ich mich sehr freuen.

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

Betreff
Datum
Anwender
Anzeige
AW: Import von .csv Dateien in Excel
06.03.2013 17:09:00
.csv
Hallo,
vielleicht hilft das:
Sub Datei_Importieren()
Dim strFileName As String, arrDaten, arrTmp, lngR As Long, lngLast As Long
Const cStrDelim As String = ";" 'Trennzeichen
Const cLngFirst As Long = 2 'erste zu beschreibende Zeile
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Datei wählen"
.InitialFileName = "c:\test\*.csv"  'Pfad anpassen
If .Show = -1 Then
strFileName = .SelectedItems(1)
End If
End With
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, cLngFirst)
.Cells(lngLast, 1).Resize(, UBound(arrTmp) + 1) _
= Application.Transpose(Application.Transpose(arrTmp))
End With
End If
Next lngR
End If
End Sub

Gruß
Rudi

Anzeige
AW: Import von .csv Dateien in Excel
06.03.2013 21:26:16
.csv
Hallo Rudi,
vielen Dank für die schnelle Antwort. Anfang nächster Woche habe ich die Möglichkeit deinen Code zu testen. Dankeschonmal im Voraus.

AW: Import von .csv Dateien in Excel
06.03.2013 22:30:46
.csv
Hallo Jeremy,
lass doch die Daten in einer Spalte importieren.
Benutze dann "daten" "test to columns" um sie spaltengerecht (auch mit Seperatorzeichen) zu trennen.
Am besten zeichnest Du solch einen Vorgang für VBA auf, dann kannst Du es einfach einbauen.
Viel Erfolg,
Gruss
Firmus

AW: Import von .csv Dateien in Excel
06.03.2013 23:06:04
.csv
Hi
öffne mal die CSV-Datei ganz normal mit Workbook.Open und gib als zusätzichen Parameter: Local:=True an.
sieht als Code dann in etwa so aus (im Code wird die CSV-Datei geöffnet und dann der Inhalt ins erste Tabellenblatt der Datei mit dem Makro kopiert)
Sub test()
Dim Datei As String
Datei = Application.GetOpenFilename("CSV, *.csv")
If Not LCase(Datei) Like "*.csv" Then Exit Sub
Workbooks.Open Datei, Local:=True
ActiveSheet.UsedRange.Copy ThisWorkbook.Sheets(1).Cells(1, 1)
ActiveWorkbook.Close False
End Sub
Gruß Daniel

Anzeige
AW: Import von .csv Dateien in Excel
07.03.2013 12:10:38
.csv
@ Firmus
Hey,
danke für die Antwort, ich werde das nach Möglichkeit mal testen, ob das dann so funktioniert wie ich mir das vorstelle. Die Idee ist auf jeden Fall schonmal gut.
@Daniel
Hey,
ich habe deinen Vorschlag schon probiert und auch mit der Parameter Locel:=True funktioniert es nicht.

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige