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

CSV-Import
07.03.2014 09:10:54
Volker
Hallo Zusammen,
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

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV-Import
07.03.2014 13:30:41
fcs
Hallo Volker,
den Import meherer CSV in ein Tabellenblatt könnte man wie folgt lösen.
Gruß
Franz
Sub CSV()
' Import mehrerer CSV-Dateien in eine EXCEL-Arbeitsmappe
Dim CSV_Datei As Variant
Dim DateiNeu As Variant, wkbNeu As Workbook, wkbCSV As Workbook
Dim wksCSV As Worksheet, wksNeu As Worksheet
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
Do
CSV_Datei = Application.GetOpenFilename(fileFilter:="CSV Datei (*.csv), *.csv")
'Fehlerabfrage und schreiben des Dateipfad in Variable
If CSV_Datei  False Then
Application.Workbooks.OpenText Filename:=CSV_Datei, origin:=xlWindows, _
DataType:=xlDelimited, _
Textqualifier:=xlTextQualifierDoubleQuote, Consecutivedelimiter:=False, _
Tab:=False, Semicolon:=True, Comma:=False, Space:=False, other:=False, _
Local:=True 'Parameter für den Import ggf. anpassen
Else
MsgBox "Vorgang wurde abgebrochen!"
Exit Do
End If
If wkbNeu Is Nothing Then
'Die 1. CSV wurde geöffnet
Set wkbNeu = ActiveWorkbook
Set wksNeu = wkbNeu.Worksheets(1)
PfadCSV = wkbNeu.Path   'Pfad der CSV-Dateien
'Dateinamen für spätere Verarbeitung in Variable übergeben
DateiNeu = wkbNeu.Name
' Laden der weiteren CSV-Dateien
ChDir PfadCSV
'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(wkbNeu.Name, Len(wkbNeu.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
wksNeu.Name = Blattname
ZeileNeu = wksNeu.UsedRange.Row + wksNeu.UsedRange.Rows.Count
Else
2. und weitere CSV-Datei anfügen
Set wkbCSV = ActiveWorkbook
Set wksCSV = wkbCSV.Worksheets(1)
wksCSV.UsedRange.Copy Destination:=wksNeu.Cells(ZeileNeu, 1)
ZeileNeu = ZeileNeu + wksCSV.UsedRange.Row + wksCSV.UsedRange.Rows.Count
wkbCSV.Close savechanges:=False
End If
'Abfrage ob weitere Datei geöffnet werden soll
If MsgBox("Weitere CSV-Datei öffnen?", vbYesNo, "CSV importieren") _
= vbNo Then Exit Do
Loop
End Sub

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige