Import und Kopie aus CSV-Datei in Tabellenblatt
30.12.2019 13:12:33
fcs
Hallo Chris,
hier muss man für einen sauberen Ablauf die involvierten Objekte (Dateien/Tabellenblätter) durchgängig deklarieren.
Abhängig davon, ob in der CSV Semikolon (Deutsch) oder Komma (US) als Trennzeichen für Spalten verwendet werden musst du den Parameter "Local" auf True oder False setzen.
Bei Zahlenwerten wird Komma (Deutsch) bzw. Punkt (US) als Dezimalzeichen interpretiert.
LG
Franz
Sub Daten_aus_CSV_einlesen()
Dim wkbZiel As Workbook, wksZiel As Worksheet
Dim wkbCSV As Workbook, wksCSV As Worksheet
Dim varDatei As Variant
varDatei = Application.GetOpenFilename(Filefilter:="CSV-Dateien(*.csv),*.csv", _
Title:="Bitte CSV-Datei mit Import-Daten auswählen")
If varDatei = False Then GoTo Beenden
Set wkbZiel = ActiveWorkbook
Set wksZiel = wkbZiel.Worksheets(2) 'oder Worksheets("Tabelle 2")
Set wkbCSV = Application.Workbooks.Open(varDatei, ReadOnly:=True, Local:=True)
Set wksCSV = wkbCSV.Sheets(1)
With wksCSV
.Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp)).Copy
End With
With wksZiel.Range("H1")
.PasteSpecial Paste:=xlPasteValues 'evtl. xlPasteAll
.EntireColumn.AutoFit
End With
Application.CutCopyMode = False
wkbCSV.Close savechanges:=False
Beenden:
Set wkbZiel = Nothing: Set wksZiel = Nothing
Set wkbCSV = Nothing: Set wksCSV = Nothing
End Sub