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

csv-Import untereinander

Forumthread: csv-Import untereinander

csv-Import untereinander
10.01.2015 14:08:34
Patrick
Hallo Fachpersonal,
ich werde eine sehr große Anzahl an csv-Dateien übersichtlich in Excel zusammenstellen müssen. Jeden Tag gibt es x Neue Dateien die jeweils unter der am Vortag eingelesenen Datei einzufügen sind.
Ich habe eine Datei Import.csv (Semikolon als Spaltentrenner, Komma als Dezimal) Hier sind 8 Spalten enthalten, davon muss ich aber nur die zweite und die fünfte Spalte importieren in den Reiter "Import". Macht es Sinn, dass ich die csv-Datei VOR dem Import ausdünne auf die zwei Spalten die ich importieren will, oder kann das vom Makro direkt verarbeitet werden?
Die erste csv-Datei wird in die Spalte B und C importiert. Die nächste csv-Datei wird dann an das Ende der ersten Datei angehangen.
Konnte ich mich verständlich ausdrücken? Hat jemand eine Idee?
Vielen Dank schon einmal.
Gruß,
Patrick

Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: csv-Import untereinander
12.01.2015 07:58:02
fcs
Hallo Patrick,
nachfolgend ein entsprechendes Makro.
Eine Aufbereitung der Daten inder geöffneten CSV-Datei ist nicht erforderlich.
Wenn du im Importblatt die Zellen in Spalten B und/oder C speziell formatiert hast, dann solltest du für den Parameter "Paste" den Wert xlPasteValues verwenden.
Gruß
Franz
'Erstellt unter Excel 2010
Sub Import_CSV()
Dim varDatei
Dim wksImport As Worksheet, Zeile_I As Long
Dim wkbCSV As Workbook, wksCSV As Worksheet, Zeile_L As Long
Dim rngCopy As Range
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte die zu importierenden CSV-Dateienen auswählen-Mehrfachauswahl möglich"
.AllowMultiSelect = True
.FilterIndex = 6
If .Show = -1 Then
Set wksImport = ActiveWorkbook.Sheets("Import")
With wksImport
'letzte Datenzeile in Spalten B und C ermitteln
Zeile_I = .Cells(.Rows.Count, 2).End(xlUp).Row
With .Cells(.Rows.Count, 3).End(xlUp)
If .Row > Zeile_I Then Zeile_I = .Row
End With
Zeile_I = Zeile_I + 1
End With
With Application
.ScreenUpdating = False
End With
For Each varDatei In .SelectedItems
'CSV-Datei schreibgeschützt öffnen
Set wkbCSV = Application.Workbooks.Open(Filename:=varDatei, ReadOnly:=True,  _
Local:=True)
Set wksCSV = wkbCSV.Sheets(1)
With wksCSV
'letzte Datenzeile in Spalten B und E ermitteln
Zeile_L = .Cells(.Rows.Count, 2).End(xlUp).Row
With .Cells(.Rows.Count, 5).End(xlUp)
If .Row > Zeile_L Then Zeile_L = .Row
End With
'Spalte B aus CSV nach Spalte B in Import kopieren
Set rngCopy = .Range(.Cells(1, 2), .Cells(Zeile_L, 2))
rngCopy.Copy
wksImport.Cells(Zeile_I, 2).PasteSpecial Paste:=xlPasteAll
'Spalte E aus CSV nach Spalte C in Import kopieren
Set rngCopy = .Range(.Cells(1, 5), .Cells(Zeile_L, 5))
rngCopy.Copy
wksImport.Cells(Zeile_I, 3).PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
End With
Zeile_I = Zeile_I + rngCopy.Rows.Count
Set wksCSV = Nothing
wkbCSV.Close savechanges:=False
Set wkbCSV = Nothing
Next
With Application
.ScreenUpdating = True
End With
End If
End With
End Sub

Anzeige
AW: csv-Import untereinander
12.01.2015 21:18:15
Patrick
Servus Franz,
danke für deinen Hirnschmalz! Ich werde wohl erst Ende der Woche zu einem ersten test kommen, aber bedanken wollte ich mich doch zeitnah. Und wenn ich es dann doch nicht verstehe....melde ich mich nochmal ;-
Schönen Abend.
Patrick
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

CSV-Import untereinander in Excel


Schritt-für-Schritt-Anleitung

Um CSV-Dateien in Excel 2010 zu importieren und die Daten untereinander einzufügen, kannst du folgendes Makro verwenden. Befolge diese Schritte:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.
  3. Kopiere den folgenden VBA-Code in das Modul:
Sub Import_CSV()
Dim varDatei
Dim wksImport As Worksheet, Zeile_I As Long
Dim wkbCSV As Workbook, wksCSV As Worksheet, Zeile_L As Long
Dim rngCopy As Range
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte die zu importierenden CSV-Dateien auswählen - Mehrfachauswahl möglich"
.AllowMultiSelect = True
.FilterIndex = 6
If .Show = -1 Then
Set wksImport = ActiveWorkbook.Sheets("Import")
With wksImport
'letzte Datenzeile in Spalten B und C ermitteln
Zeile_I = .Cells(.Rows.Count, 2).End(xlUp).Row
With .Cells(.Rows.Count, 3).End(xlUp)
If .Row > Zeile_I Then Zeile_I = .Row
End With
Zeile_I = Zeile_I + 1
End With
With Application
.ScreenUpdating = False
End With
For Each varDatei In .SelectedItems
'CSV-Datei schreibgeschützt öffnen
Set wkbCSV = Application.Workbooks.Open(Filename:=varDatei, ReadOnly:=True, Local:=True)
Set wksCSV = wkbCSV.Sheets(1)
With wksCSV
'letzte Datenzeile in Spalten B und E ermitteln
Zeile_L = .Cells(.Rows.Count, 2).End(xlUp).Row
With .Cells(.Rows.Count, 5).End(xlUp)
If .Row > Zeile_L Then Zeile_L = .Row
End With
'Spalte B aus CSV nach Spalte B in Import kopieren
Set rngCopy = .Range(.Cells(1, 2), .Cells(Zeile_L, 2))
rngCopy.Copy
wksImport.Cells(Zeile_I, 2).PasteSpecial Paste:=xlPasteAll
'Spalte E aus CSV nach Spalte C in Import kopieren
Set rngCopy = .Range(.Cells(1, 5), .Cells(Zeile_L, 5))
rngCopy.Copy
wksImport.Cells(Zeile_I, 3).PasteSpecial Paste:=xlPasteAll
Application.CutCopyMode = False
End With
Zeile_I = Zeile_I + rngCopy.Rows.Count
Set wksCSV = Nothing
wkbCSV.Close savechanges:=False
Set wkbCSV = Nothing
Next
With Application
.ScreenUpdating = True
End With
End If
End With
End Sub
  1. Schließe den VBA-Editor und kehre zu Excel zurück.
  2. Gehe auf das "Import"-Blatt, wo die Daten eingefügt werden sollen.
  3. Drücke ALT + F8, wähle Import_CSV aus und klicke auf Ausführen.
  4. Wähle die gewünschten CSV-Dateien aus und klicke auf Öffnen.

Das Makro importiert die Daten aus den CSV-Dateien in die Spalten B und C des "Import"-Blatts.


Häufige Fehler und Lösungen

  • Fehler: Die CSV-Datei ist zu groß für Excel.

    • Lösung: Überprüfe, ob du die Datei vor dem Import in kleinere Teile aufteilen kannst. Excel hat eine Begrenzung von 1.048.576 Zeilen pro Arbeitsblatt.
  • Fehler: Daten werden nicht korrekt importiert.

    • Lösung: Stelle sicher, dass du die richtigen Spalten im Makro angegeben hast. Achte darauf, dass die CSV-Datei das richtige Trennzeichen verwendet (Semikolon, wenn im Makro so angegeben).
  • Fehler: Das Makro läuft nicht.

    • Lösung: Überprüfe, ob Makros in deinem Excel aktiviert sind. Du kannst dies unter Datei > Optionen > Trust Center > Einstellungen für das Trust Center > Makroeinstellungen überprüfen.

Alternative Methoden

  1. Manueller CSV-Import:

    • Du kannst die CSV-Datei auch manuell importieren, indem du auf Daten > Externe Daten abrufen > Aus Text klickst und die Datei auswählst. Wähle das Semikolon als Trennzeichen aus.
  2. Power Query:

    • In neueren Excel-Versionen (ab Excel 2016) kannst du Power Query verwenden, um CSV-Dateien zu importieren und zu transformieren.

Praktische Beispiele

Angenommen, du hast zwei CSV-Dateien, die wie folgt aussehen:

datei1.csv

ID;Name;Alter;Stadt;Wert
1;Max;30;Berlin;100
2;Anna;25;Hamburg;200

datei2.csv

ID;Name;Alter;Stadt;Wert
3;Peter;35;München;150
4;Julia;28;Köln;250

Nach dem Import mit dem obigen Makro würdest du folgende Daten im "Import"-Blatt sehen:

B       | C
--------|-----
Name    | Wert
Max     | 100
Anna    | 200
Peter   | 150
Julia   | 250

Tipps für Profis

  • Verwende xlPasteValues, wenn du nur die Werte und nicht die Formate importieren möchtest.
  • Optimiere dein Makro, indem du Fehlerbehandlungen einfügst, um den Import robuster zu machen.
  • Wenn du oft importierst, erwäge, das Makro in der Schnellzugriffsleiste zu speichern, um den Zugriff zu erleichtern.

FAQ: Häufige Fragen

1. Wie kann ich mehrere CSV-Dateien gleichzeitig importieren? Du kannst beim Ausführen des Makros mehrere Dateien auswählen, indem du die Strg-Taste gedrückt hältst und die gewünschten Dateien anklickst.

2. Was mache ich, wenn ich eine andere Excel-Version benutze? Das Makro wurde für Excel 2010 erstellt, sollte jedoch auch in neueren Versionen funktionieren. Achte darauf, dass die VBA-Umgebung in deiner Excel-Version verfügbar ist.

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