Anzeige
Archiv - Navigation
1440to1444
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

VBA: CSV Import mit Dezimaltrennzeichen(,)

VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 10:08:53
Hans
Hallo Zusammen,
ich habe folgendes Problem:
Ich importiere eine CSV Datei in ein Excel Dokument. Die CSV Datei enthält unter anderem Dezimalzahlen. Nach dem die CSV Datei eingelesen wurde werden im Excel Dokument die Dezimalzahlen mit einem . (Punkt) anstatt eines , (Kommas) aufgeführt.
Mein folgender Code für den Import:
Set Daten = Workbooks.Open("Pfad/Daten_" & Format(Daten, "m") - 1 & ".xlsx")
Open "Pfad/Daten1_" & Format(Daten, "m") - 1 & ".csv" For Input As #1
i = 1
Do Until EOF(1)
Line Input #1, Zeile
T = Split(Zeile, ";")
For k = 0 To UBound(T)
AE_Daten.Sheets(1).Cells(i, k + 1).Value = T(k)
Next k
i = i + 1
Loop
Close #1

Über Eure Hilfe würde ich mich sehr freuen!
Viele Grüße

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 10:14:40
Sepp
Hallo Hans,
über den Import von csv-Dateien wurde schon viel geschrieben.
Warum liest du die Datei nicht direkt über Daten > aus Text ein?
Viel hängt beim Import von csv's vom Aufbau derselben ab, lade evtl. eine Beispieldatei hoch. (vorher in .txt umbenennen, weil der Upload von .csv nicht möglich ist)
Gruß Sepp

AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 10:19:50
ede
Hallo Hans,
falls der "." immer in ein "," umgesetzt werden soll, dann so:
AE_Daten.Sheets(1).Cells(i, k + 1).Value = Replace(T(k), ".", ",", 1)
gruss

Anzeige
AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 11:00:51
Hans
https://www.herber.de/bbs/user/99334.txt
Hallo,
vielen Dank für Eure Hilfe.
Ich hatte mich zu unpräzise ausgedrückt, es sollen nur die "." in den Dezimalzahlen ersetzt werden. Wichtig ist das bei einer Zahl von 1.189.18 nur der letzte Punkte als "," ersetzt wird.
Ich hoffe Ihr könnt mir helfen.
Viele Grüße

AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 11:12:07
ede
Hallo noch mal,
deine txt-Beispieldatei hat leider falschen Inhalt. Bitte neu abstellen mit ruhig mehr Beispielen...
Gruss

AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 12:13:29
Hans
https://www.herber.de/bbs/user/99337.txt
sorry, jetzt müsste es passen.

Anzeige
AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 13:37:37
Sepp
Hallo Hans,
deine Datei lässt sich Problemlos per > Daten > Aus Text importieren. Einfach dem Assistenten folgen. das lässt sich auch in ein Makro einbauen.
Gruß Sepp

AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 14:07:25
Hans
vielen Dank für Eure bisherige Hilfe.
Habt ihr eine Idee oder besteht überhaupt die Möglichkeit das in meinen bestehenden Code einzubauen?
Bin für jede Hilfe dankbar!

AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
05.08.2015 15:53:58
Sepp
Hallo Han,
dafür gibt es den Rekorder!
Bezogen auf deinen Code z. B. so.
With AE_Daten.Sheets(1).QueryTables.Add(Connection:="TEXT;" & _
    "Pfad/Daten1_" & Format(Daten, "m") - 1 & ".csv", Destination:=Range("$A$1"))
  .Name = "import"
  .FieldNames = True
  .RowNumbers = False
  .FillAdjacentFormulas = False
  .PreserveFormatting = True
  .RefreshOnFileOpen = False
  .RefreshStyle = xlInsertDeleteCells
  .SavePassword = False
  .SaveData = True
  .AdjustColumnWidth = True
  .RefreshPeriod = 0
  .TextFilePromptOnRefresh = False
  .TextFilePlatform = 1252
  .TextFileStartRow = 1
  .TextFileParseType = xlDelimited
  .TextFileTextQualifier = xlTextQualifierDoubleQuote
  .TextFileConsecutiveDelimiter = False
  .TextFileTabDelimiter = True
  .TextFileSemicolonDelimiter = True
  .TextFileCommaDelimiter = False
  .TextFileSpaceDelimiter = False
  .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
  .TextFileTrailingMinusNumbers = True
  .Refresh BackgroundQuery:=False
End With

Gruß Sepp

Anzeige
AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
06.08.2015 09:50:43
Hans
Hallo Sepp,
ich habe deinen Vorschlag versucht umzusetzen, leider erhalte ich immer folgende Fehlermeldung: "Anwendungs- oder objektdefinierter Fehler"
Ich hoffe ihr könnt mir helfen! Unten stehend mein Code.
Set AE_Daten = Workbooks.Open("L:\Reporting\AEDaten_" & Format(Date, "m") - 1 & ".xlsx")
With AE_Daten.Sheets(1).QueryTables.Add(Connection:="TEXT;" & _
"L:\Reporting\Daten1_" & Format(Date, "m") - 1 & ".csv", Destination:=AE_Daten.Sheets(1).Range(" _
$A1$"))
.Name = "Daten1"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = True
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With

Anzeige
AW: VBA: CSV Import mit Dezimaltrennzeichen(,)
06.08.2015 09:56:08
Sepp
Hallo Hans,
Set AE_Daten = Workbooks.Open("L:\Reporting\AEDaten_" & Format(Date, "m") - 1 & ".xlsx")
With AE_Daten.Sheets(1).QueryTables.Add(Connection:="TEXT;" & _
    "L:\Reporting\Daten1_" & Format(Date, "m") - 1 & ".csv", Destination:=.Range("$A1$"))
  .Name = "Daten1"
  .FieldNames = True
  .RowNumbers = False
  .FillAdjacentFormulas = False
  .PreserveFormatting = True
  .RefreshOnFileOpen = False
  .RefreshStyle = xlInsertDeleteCells
  .SavePassword = False
  .SaveData = True
  .AdjustColumnWidth = True
  .RefreshPeriod = 0
  .TextFilePromptOnRefresh = False
  .TextFilePlatform = 1252
  .TextFileStartRow = 1
  .TextFileParseType = xlDelimited
  .TextFileTextQualifier = xlTextQualifierDoubleQuote
  .TextFileConsecutiveDelimiter = False
  .TextFileTabDelimiter = True
  .TextFileSemicolonDelimiter = True
  .TextFileCommaDelimiter = False
  .TextFileSpaceDelimiter = False
  .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
  .TextFileTrailingMinusNumbers = True
  .Refresh BackgroundQuery:=False
End With

Gruß Sepp

Anzeige

312 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige