Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1332to1336
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-Export: Folgen des Trennzeichenwechsels

CSV-Export: Folgen des Trennzeichenwechsels
08.10.2013 14:48:43
Jens
Hallo zusammen,
ich hadere gerade mit der anscheinend empfohlenen (in diversen Foren gelesenen) Methode, das Listentrennzeichen für den CSV-Export zu ändern.
Ich muss regelmäßig Tabellen als CSV-Dateien mit dem Trennzeichen "|" (Pipe) exportieren.
Der einzige bisher von mir gefundene Weg (Windows 8):
Über "Systemsteuerung", "Datums-, Uhrzeit- oder Zahlenformat ändern", "Formate", "Weitere Einstellungen", "Listentrennzeichen" dieses vom Semikolon in das Pipe-Zeichen ändern.
Das führt allerdings dazu, dass ich dann in Excel z. B. bei der Eingabe von Funktionen die Parameter ebenfalls mit dem "|" trennen soll (sonst meckert Excel, ich hätte die Formel falsch eingegeben. Und irgendwie möchte ich mich da ungern umstellen bzw. mir das vom Betriebssystem vorschreiben lassen.
Ich wende mich insofern mal mit diesem eigenen Eintrag an Euch, um zu erfahren, ob es in Excel (2010) nicht doch eine Möglichkeit gibt, das Trennzeichen (nur) beim Export-Prozess festzulegen.
Danke für Eure Antworten - und Grüße
Jens

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CSV-Export: Folgen des Trennzeichenwechsels
08.10.2013 15:41:44
Rudi
Hallo,
Public Sub prcCreateCSV()
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArray As Variant
Dim intItem As Integer
Dim strText As String
Dim i As Integer
Const strSep As String = "|"
With Selection.CurrentRegion
For lngRow = 1 To .Rows.Count
vntArray = .Cells(lngRow, 1).Resize(, .Columns.Count)
vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArray))
If strText = "" Then
strText = Join(vntArray, strSep)
Else
strText = strText _
& vbCrLf _
& Join(vntArray, strSep)
End If
Next
End With
intFileNumber = FreeFile
With ActiveWorkbook
'    .Save
Open _
.Path & "\" _
& Left$(.Name, InStrRev(.Name, ".") - 1) _
& "_" & ActiveSheet.Name _
& ".csv" _
For Output As #intFileNumber
End With
Print #intFileNumber, strText
Close #intFileNumber
End Sub

Gruß
Rudi

Anzeige
AW: CSV-Export: Folgen des Trennzeichenwechsels
08.10.2013 17:28:47
Jens
Besten Dank.
In der Zeile "vntArray = WorksheetFunction.Transpose(WorksheetFunction.Transpose(vntArray))" sagt Excel "Typen unverträglich".
Ist die Dopplung von WorksheetFunction.Transpose gewollt oder liegt da der Fehler?
Ich hatte inzwischen ja auch noch eine Antwort mit einer Variante erhalten, mit der ich gut klarkomme. Insofern ist das Debuggen an dieser Stelle nicht zwingend nötig.
Euch beiden herzlichen Dank und Grüße
Jens

AW: CSV-Export: Folgen des Trennzeichenwechsels
08.10.2013 16:21:42
fcs
Hallo Jens,
hier eine Variante zum erstellen der CSV-Datei
mfg
Franz
Sub SaveAsText_with_Pipe()
Dim wks As Worksheet, Zelle As Range
Dim lngZeile As Long, lngSpalte As Long
Dim lngZeileL As Long, lngSpalteL As Long
Dim varDateiname, FF As Integer
Dim strText As String, strSep As String
strSep = "|"     'Datenfeld-Trennzeichen
Const bolValue As Boolean = False 'True = Value-Eigenschaft in Text-Datei schreiben
'False = Text.Eigenschaft
Set wks = ActiveSheet
With wks
Set Zelle = .Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByRows, searchdirection:=xlPrevious)
If Zelle Is Nothing Then
MsgBox " keine Daten im Tabellenblatt vorhanden"
GoTo Beenden
End If
End With
varDateiname = ActiveWorkbook.Path & Application.PathSeparator & wks.Name & ".CSV"
varDateiname = Application.GetSaveAsFilename(InitialFileName:=varDateiname, _
Filefilter:="CSV (*.csv),*.csv", _
Title:="Bitte CSV-Dateiname wählen/eingeben")
If varDateiname  False Then
With wks
lngZeileL = Zelle.Row
Set Zelle = .Cells.Find(What:="*", After:=.Cells(1, 1), LookIn:=xlFormulas, _
lookat:=xlWhole, searchorder:=xlByColumns, searchdirection:=xlPrevious)
lngSpalteL = Zelle.Column
FF = FreeFile
Open varDateiname For Output As #FF
For lngZeile = 1 To lngZeileL
strText = IIf(bolValue, .Cells(lngZeile, 1).Value, .Cells(lngZeile, 1).Text)
For lngSpalte = 2 To lngSpalteL
strText = strText & strSep _
& IIf(bolValue, .Cells(lngZeile, lngSpalte).Value, _
.Cells(lngZeile, lngSpalte).Text)
Next
Print #FF, strText
Next
Close #FF
End With
End If
Beenden:
End Sub

Anzeige
AW: CSV-Export: Folgen des Trennzeichenwechsels
08.10.2013 17:26:00
Jens
Vielen Dank. Funktioniert wunderbar.
Den Code muss ich mir für's eigene Verständnis mal bei Gelegenheit in Ruhe ansehen.
VG
Jens

43 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige