Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1204to1208
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
.csv in .xls kopieren
Chris
Hallo,
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

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: .csv in .xls kopieren
14.03.2011 10:10:10
Rudi
Hallo,
Sub Datei_Importieren()
Dim strFileName As String, arrDaten, arrTmp, lngR As Long
Const cstrDelim As String = ";" 'Trennzeichen
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False
.Title = "Datei wählen"
.InitialFileName = "c:\test\*.csv"  'Pfad anpassen
If .Show = -1 Then
strFileName = .SelectedItems(1)
End If
End With
If strFileName  "" Then
Application.ScreenUpdating = False
Open strFileName For Input As #1
arrDaten = Split(Input(LOF(1), 1), vbCrLf)
Close #1
For lngR = 1 To UBound(arrDaten)
arrTmp = Split(arrDaten(lngR), cstrDelim)
If UBound(arrTmp) > -1 Then
Sheets("Import").Cells(Rows.Count, 1).End(xlUp) _
.Offset(1).Resize(, UBound(arrTmp) + 1) _
= Application.Transpose(Application.Transpose(arrTmp))
End If
Next lngR
End If
End Sub

Gruß
Rudi
Anzeige
AW: .csv in .xls kopieren
14.03.2011 11:16:23
Chris
Danke für die schnelle Antwort.
Code funktioniert soweit. Ich erhalte allerdings eine Fehlermeldung für:

Sheets("x").Cells(Rows.Count, 1).End(xlUp) _
.Offset(1).Resize(, UBound(arrTmp) + 1) _
= Application.Transpose(Application.Transpose(arrTmp))

"Automatisierungsfehler
Das aufgerufene Objekt wurde von den Clients getrennt"
Die Datenwerden aber korrekt in das entsprechende Tabellenblatt übertragen.
Zusätzlich soll die erste Zeile, die mit den Daten befüllt werden soll nicht die weite, sonder die dritte sein.
Grüße

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige