CSV-Import
07.03.2014 09:10:54
Volker
ich habe folgenden VBA-Code um CSV-Dateien zu Importieren gefunden. Das Importieren der ersten CSV-Datei ist auch soweit i.o.
Die zweite CSV soll nun aber nicht in ein neues Tabellenblatt sondern auf dem aktuellen Sheet unten angehängt werden.
Hat vielleicht von Euch jemand eine Idee?
Danke
Gruß
Volker
Sub CSV()
' Import mehrerer CSV-Dateien in eine EXCEL-Arbeitsmappe
Dim CSV_Datei As Variant
Dim DateiNeu As Variant
Dim PfadCSV As String
Dim Blattname As String
' Öffnen der 1. CSV-Datei
'Öfnnen der 1.Datei und setzten des Filter für *.csv-Dateien
CSV_Datei = Application.GetOpenFilename(fileFilter:="CSV Datei (*.csv), *.csv")
'Fehlerabfrage und schreiben des Dateipfad in Variable
If CSV_Datei False Then
Application.Workbooks.OpenText CSV_Datei, , , , , , , Semicolon, Comma
PfadCSV = ActiveWorkbook.Path 'Pfad der CSV-Dateien
Else
MsgBox "Vorgang wurde abgebrochen!"
Exit Sub
End If
'Dateinamen für spätere Verarbeitung in Variable übergeben
DateiNeu = ActiveWorkbook.Name
' Laden der weiteren CSV-Dateien
ChDir PfadCSV
Do
'Sprungmarke
Blattname:
'Abftrage des Blattnamens. Standardmäßig wird Name der CSV_Datei genommen
Blattname = InputBox("Name für Tabellenblatt der importierten CSV-Datei", "CSV importieren", _
_
_
Left(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) - 4))
'Überprüfung ob Eingabe vorhanden
If Blattname = "" Then
MsgBox "Leerer Blattname ist nicht zulässig!"
GoTo Blattname:
End If
'Zuweisen des Namne für Tabellenblatt
Sheets(1).Name = Blattname
' aktuell eingelesene CSV-Datei als letzte Tabelle in neue Excel-Datei verschieben
Sheets(1).Move After:=Workbooks(DateiNeu).Sheets(Workbooks(DateiNeu).Sheets.Count)
'Abfrage ob weitere Datei geöffnet werden soll
If MsgBox("Weitere CSV-Datei öffnen?", vbYesNo, "CSV importieren") = vbNo Then Exit Do
CSV_Datei = Application.GetOpenFilename( _
fileFilter:="CSV Datei (*.csv), *.csv")
If CSV_Datei False Then
Application.Workbooks.OpenText CSV_Datei, , , , , , , Semicolon, Comma
Else
MsgBox "Vorgang wurde abgebrochen!"
Exit Do
End If
Loop
End Sub