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

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

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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige