Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1560to1564
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

Formatierung von VBA geöffneter CSV-Datei ändern

Formatierung von VBA geöffneter CSV-Datei ändern
31.05.2017 09:03:55
VBA
Hallo Zusammen,
ich versuche etliche csv-Dateien in ein Excelsheet zu kopieren. Dazu öffne ich per VBA die csv- _
Datei und kopiere den Inhalt. Soweit so gut. Jedoch zeigt es in der CSV die Werte nicht richtig _ an. Unten hab ich ein Beispiel der zu einlesenden Datei. Die Werte mit 0.9xx sind richtig, die 10.xxx müssten 1.0xxx sein.

04:30:00	0.0644	0.8721
04:45:00	0.068	0.9209
05:00:00	0.071	0.9615
05:15:00	0.0732	0.9913
05:30:00	0.07472	10.119
05:45:00	0.07572	10.254
06:00:00	0.0766	10.373
06:15:00	0.07772	10.525
06:30:00	0.07932	10.742
06:45:00	0.08192	11.094
07:00:00	0.086	11.646
07:15:00	0.09192	12.448
07:30:00	0.1004	13.596
07:45:00	0.11192	15.156
Mein Code zum Einlesen ist:

'Dateien in Tabelle1 schreiben
k = 2
Do While True
sPfad = "S:\Eigene Dateien\" 'Pfad des Ordners
strFile = Trim(ThisWorkbook.Worksheets("Tabelle2").Cells(k, 2))
strFileName = sPfad & strFile 'kompletter Dateipfad zum Dateiinhalt
k = k + 1
Debug.Print strFile
If strFile = "" Then
Exit Do
Else
'Öffnen der Datei
Workbooks.Open Filename:=strFileName, Local:=True
Range(Cells(1, 1), Cells(29505, 3)).CurrentRegion.TextToColumns Destination:=Range( _
Cells(1, 1), _
Cells(29505, 3)), DataType:=xlDelimited, Semicolon:=True, DecimalSeparator:=".",  _
ThousandsSeparator:=" ", _
TextQualifier:=xlTextQualifierDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False,  _
Comma:=False, _
Space:=False, TrailingMinusNumbers:=Flase
If Err.Number  0 Then
MsgBox "Daten nicht vorhanden", vbOKOnly + vbCritical
Exit Sub
End If
'Anzahl Zeilen
zeilen = ActiveWorkbook.Worksheets(1).UsedRange.Rows.Count
'letzteZeile ermitteln
letzteZeile = ThisWorkbook.Worksheets("Tabelle1").Cells(Rows.Count, 1).End(xlUp) _
_
_
_
.Row + 1
'Kopieren von SWEIG-E-UST-004
Range("A1:A" & zeilen).Copy Destination:=ThisWorkbook.Worksheets("Tabelle1"). _
Range("A" & letzteZeile)
Range("B1:B" & zeilen).Copy Destination:=ThisWorkbook.Worksheets("Tabelle1"). _
Range("B" & letzteZeile)
Range("C1:C" & zeilen).Copy Destination:=ThisWorkbook.Worksheets("Tabelle1"). _
Range("C" & letzteZeile)
'Schließen der Datei
ActiveWorkbook.Close Filename:=strFileName, savechanges:=False
End If
Loop
Sorry für die schreckliche Darstellung, aber die Code-Zeilen sind einfach zu lang^^
Ich denke der Wurm liegt schon nach dem Öffnen der Datei.
also nach Workbooks.Open usw.
Hier im Forum habe ich schon DecimalSeparator:=".", ThousandsSeparator:=" ", gefunden und eingefügt. Leider muss ich irgendwo nochmals einen Fehler haben.
Ich würde mich freuen, wenn mir jmd weiterhelfen könnte.
Vielen Dank schon mal im Voraus!
Grüße Lari

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Formatierung von VBA geöffneter CSV-Datei ändern
01.06.2017 06:02:39
VBA
Hallo Lan,
beim Import von Text/CSV-Dateien in Excel unter VBA sind relevant:
1. Sprachversion von Windows bzw. die Länderspezifischen Einstellungen für Datum und Zahlen
2. Sprachversion von Excel
3. Die Darstellung von Datum/Zahlen und das Trennzeichen in der CSV/Textdatei.
Stimmen die Einstellungen unter Windows mit denen in der Textdatei überein
Deutsch also Trennzeichen = Semikolon, Dezimalzeichen = Komma, 1000er-Zeichen = Punkt
Datum = TT.MM.JJJJ
Dann muss man "nur" den Parameter Local auf True setzen und der Import sollte korrekt sein.
Stimmen die Einstellungen in der Textdatei mit den US-Einstellungen überein
Trennzeichen = Komma, Dezimalzeichen = Punkt, 1000er-Zeichen = nicht vorhanden
Datum = MM\TT\JJJJ
dann funktioniert der Import mit Parameter Local=False - oder man lässt ihn weg.
Weicht die Darstellung von Zahlen/Datum dann muss man sich um die Besonderheiten der Formatierungen in der Textdatei kümmern.
Damit dir konkret gehlfen werden kann musst du hier mal eine CSV/TXT-Datei mit ein paar Beispiel-Datensätzen hochladen.
Eine Datei mit vielen Datenzeilen kannst du in einem Texteditor einkürzen. Personenbezogene Daten ggf. anonymisieren.
Gruß
Franz
Anzeige

319 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige