Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

csv Textdatei in xls kopieren

csv Textdatei in xls kopieren
21.03.2014 19:46:11
Peter
hallo Freunde,
ich möchte eine csv-(Text)Datei mit Makro in eine Exceltabelle kopieren.
Dabei soll nach jedem Simicolon der Textwert in die nächste Spalte geschrieben werden: "Text;1;2;3 also Text in Spalte "A", 1 in Spalte "B", 2 in Spalte "C" usw.
Wenn ich ohne Makro mit "c" und "v" kopiere, dann funktioniert die Spaltentrennung per Simicolon. Mit meinem Makro nicht. Dort wird alles wie in der csv-Datei hintereinander kopiert.
Kann mir jemand helfen und den richtigen Code schreiben.
Workbooks.OpenText Filename:=oldfileOpen....
Gruß Peter

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: csv Textdatei in xls kopieren
22.03.2014 08:05:31
Beverly
Hi Peter,
führe nach dem Einfügen noch Text in Spalten aus (das lässt sich mit dem Makrorekorder aufzeichnen).


AW: csv Textdatei in xls kopieren
22.03.2014 10:08:33
Uwe
Hallo Peter,
das hab ich in der Recherche gefunden. Evtl ein Ansatz.
Option Explicit
Const CsvSeparator = ";"
'**************************************
'Daten aus csv-Datei in EXCEL einlesen*
'**************************************

Sub ImportCSV()
Dim Dateiname
Dim nFileNr     As Long
Dim RowCount    As Long
Dim csvRow      As Integer
Dim temp        As String
Dim csvCells()  As String
Dim ws          As Worksheet
Set ws = ActiveWorkbook.Sheets("Tabelle1")
Dateiname = Application.GetOpenFilename("Textdateien,*.csv")
If Dateiname  False Then
Application.ScreenUpdating = False
nFileNr = FreeFile
Open Dateiname For Input Access Read As #nFileNr
'Line Input #nFileNr, temp
RowCount = 0
While Not EOF(nFileNr)
Line Input #nFileNr, temp
csvCells = Split(temp, CsvSeparator)
ws.Cells(RowCount, 1).Value = csvCells(0)
ws.Cells(RowCount, 2).Value = csvCells(1)
ws.Cells(RowCount, 3).Value = csvCells(2)
RowCount = RowCount + 1
Erase csvCells
Wend
Close #1
'Hochkomma entfernen
Cells.Find(What:="""", After:=ActiveCell, LookIn:=xlFormulas, lookat:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Cells.Replace What:="""", Replacement:="", lookat:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Application.ScreenUpdating = True
End If
End Sub

Gruß Uwe

Anzeige
kleine Änderung
22.03.2014 10:21:25
Uwe
Option Explicit
Const CsvSeparator = ";"
'**************************************
'Daten aus csv-Datei in EXCEL einlesen*
'**************************************

Sub ImportCSV()
Dim Dateiname
Dim nFileNr     As Long
Dim RowCount    As Long
Dim csvRow      As Integer
Dim temp        As String
Dim csvCells()  As String
Dim ws          As Worksheet
Set ws = ActiveWorkbook.Sheets("Tabelle1")
Dateiname = Application.GetOpenFilename("Textdateien,*.csv")
If Dateiname  False Then
Application.ScreenUpdating = False
nFileNr = FreeFile
Open Dateiname For Input Access Read As #nFileNr
'Line Input #nFileNr, temp
RowCount = 0
While Not EOF(nFileNr)
Line Input #nFileNr, temp
csvCells = Split(temp, CsvSeparator)
ws.Cells(1 + RowCount, 1).Value = csvCells(0)
ws.Cells(1 + RowCount, 2).Value = csvCells(1)
ws.Cells(1 + RowCount, 3).Value = csvCells(2)
RowCount = RowCount + 1
Erase csvCells
Wend
Close #1
'Hochkomma entfernen
Cells.Find(What:="""", After:=ActiveCell, LookIn:=xlFormulas, lookat:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, SearchFormat:=False).Activate
Cells.Replace What:="""", Replacement:="", lookat:=xlPart, SearchOrder _
:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
Application.ScreenUpdating = True
End If
End Sub

Anzeige

321 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige