Ich möchte per "Button Click" die Inhalte einer .csv Datein in eine .xls Datei kopieren. Die Spaltennamen sind dabei immer gleich.
Folgende Code konnte ich mir bisher zusammensuchen:
Sub kopieren()
Dim wksN As Excel.Worksheet
Dim qtbN As Excel.QueryTable
Dim vntPathAndFileName As Variant
vntPathAndFileName = Application.GetOpenFilename( _
FileFilter:="csv Files (*.csv), *.csv", _
Title:="Meine Dateien ", _
MultiSelect:=False)
If VarType(vntPathAndFileName) = vbBoolean Then
MsgBox "Abgebrochen!"
Exit Sub
End If
Set wksN = ThisWorkbook.Worksheets.Add(Before:=ThisWorkbook.Worksheets(1))
'Oder in neues Workbook:
'Set wksN = Application.Workbooks.Add.Worksheets(1)
Set qtbN = wksN.QueryTables.Add("TEXT;" & vntPathAndFileName, wksN.Cells(1, 1))
qtbN.FieldNames = True
qtbN.RowNumbers = False
qtbN.FillAdjacentFormulas = False
qtbN.PreserveFormatting = True
qtbN.RefreshOnFileOpen = False
qtbN.RefreshStyle = xlOverwriteCells
qtbN.SaveData = True
qtbN.AdjustColumnWidth = False
qtbN.RefreshPeriod = 0
qtbN.TextFilePromptOnRefresh = False
qtbN.TextFilePlatform = xlWindows
qtbN.TextFileStartRow = 1
qtbN.TextFileParseType = xlDelimited
qtbN.TextFileTextQualifier = xlTextQualifierNone
qtbN.TextFileSemicolonDelimiter = True
qtbN.Refresh BackgroundQuery:=False
qtbN.Delete
End Sub
Hier öffnet sich ein Auswahlfenster, mit dem ich meine entsprechende .csv-Datein auswählen kann.
Hier kopiert er allerdings das komplette Tabellenblatt in meine .xls-Datei.
Es soll in der .xls-Datei lediglich ein Tabellenblatt geben, wo die Zeilen untereinander aufgelistet werden.
Beispiel:
-> .csv-Datein auswählen -> schreibe zeilen in Tabellenblatt "Rohdaten_importieren" -> schließe .csv-Datei -> erneuter Button Klick -> weitere .csv-Datei auswählen und die neuen Daten unter die Daten der ersten .csv-Datein kopieren
Dieser Vorgang soll sich "x" mal wieder holen können.
Ich hoffe ich habe mich eingermaßen verständlich ausgedrückt.
Vielen Dank schonmal!
MfG
Henry