Anzeige
Archiv - Navigation
980to984
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
980to984
980to984
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Datei-Export als CSV mit Dezimalkomma

Datei-Export als CSV mit Dezimalkomma
28.05.2008 09:45:00
Bertram
Hallo zusammen,
ich möchte ein Tabellenblatt als CSV exportieren und dabei die Dezimalkommas als solche behalten. Anscheinend wandelt Excel das beim Export in einen Punkt um.
Habe mal das Archiv durchforstet und diesen Code von Nepumuk gefunden:

Public Sub prcCreateCSV()
Dim intFileNumber As Integer
Dim lngRow As Long
Dim vntArray As Variant
Dim strText As String
Reset
intFileNumber = FreeFile
With ThisWorkbook
.Save
Open .Path & "\" & Left$(.Name, Len(.Name) - 4) & _
".csv" For Output As #intFileNumber
End With
With ActiveSheet.UsedRange
For lngRow = 1 To .Row + .Rows.Count - 1
vntArray = Range(Cells(lngRow, 1), _
Cells(lngRow, .Column + .Columns.Count - 1))
vntArray = WorksheetFunction.Transpose( _
WorksheetFunction.Transpose(vntArray))
strText = Join(vntArray, ";")
Print #intFileNumber, strText
Next
End With
Close #intFileNumber
End Sub


Wenn ich das richtig verstehe, wird die Datei erst normal gespeichert, dann als CSV geöffnet, alles in ein Array geschrieben und wieder mit Semikolon-Separator gespeichert.
Das mit dem Beibehalten des Dezimalkommas funktioniert zwar jetzt, allerdings habe ich ein neues Problem.
In der Zelle steht z.B. 572. Dieser Wert ist allerdings berechnet und wäre ohne Formatierung z.B. 572,417582417582. Der obige Code fügt mir in der CSV-Datei den Wert mit allen Nachkommastellen ein. Ich brauche diese aber nicht und sie dürfen da auch nicht stehen (CSV-Datei wird später wieder von SAP importiert).
So, nun zu meinen Fragen:
Geht der Datei-Export mit Dezimalkomma (ohne Umwandlung zu Punkt) einfacher als mit obigem Code?
Falls nein, kann ich die Nachkommastellen abschneiden oder muss ich schon die Berechnung so wählen, dass keine Nachkommastellen enstehen?
Bei der Gelegenheit: Hab nicht wirklich rausgefunden was der Unterschied von "Left" und "Left$" (siehe Code) ist. Kann mir das einer sagen?
Danke für jegliche Anregung.
Gruß
Bertram

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

Betreff
Datum
Anwender
Anzeige
AW: Datei-Export als CSV mit Dezimalkomma
28.05.2008 09:57:33
Renee
Hi Bertram,
Irgendwie sehe ich da einen Widerspruch:
...dem Beibehalten des Dezimalkommas... und ...Ich brauche diese aber nicht und sie dürfen da auch nicht stehen... Entweder oder!
Geht der Datei-Export mit Dezimalkomma (ohne Umwandlung zu Punkt) einfacher als mit obigem Code? Was verstehst du unter einfacher? EXCEL (VBA) versteht nur Englisch und da ist nun mal der Punkt und nicht das Komma, das Dezimaltrennzeichen. Aber da es ja anscheinend nicht brauchst, bleiben dir 2 Möglichkeiten:
1. In der Tabelle die Werte RUNDEN (ohne Nachkommastellen), oder
2. Im Code ROUND(Zellenwert)
Zwischen Left und Left$ gibt es funktional keinen Unterschied. Die Left$ Funktion ist aus kompatibiltätsgründen zu älteren Excelversionen beibehalten.
GreetZ Renée

Anzeige
AW: Datei-Export als CSV mit Dezimalkomma
28.05.2008 10:13:00
Bertram
Hallo Renée,
danke dir für prompte Beantwortung (wie immer:-D). Du hast Recht. In meiner Formulierung ist ein Widerspruch. Ich brauche schon Nachkommastellen, allerdings nicht von allen Werten.
Mit einfacher meinte ich sowas wie
With ActiveWorkbook
.SaveAs Filename:=strPfadCSVUser & "cbase.csv", FileFormat:=xlCSV
.Close
End With
Aber ich glaube ich komm um den längeren Code nicht rum. Werden die Berechnungen ändern.
Gruß
Bertram

309 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige