csv Dateien als Text importieren
Hallo 
ich habe ein Makro geschrieben, das .csv Dateien importiert. Nun habe ich folgendes Problem: In den importierten Dateien stehen fast ausschließlich Hexadezimalzahlen, die ich mittels Makro weiterverarbeite und umrechne. Aus Zahlen wie beispielsweise 7E025 macht Excel automatisch 7,00E+25 oder 637E4 wird 6,37E06. In meinem Makro formatiere ich die entsprechenden Zellen zu Text und rechne sie dann in Dezimalzahlen um, Fälle wie die beschriebenen verfälschen allerdings meine Ergebnisse.
Hier ein Ausschnitt aus meinem aktuellen Code, von dem ich denke, dass dort die entsprechende Formatierung reinmüsste:
Dort habe ich es mit versucht, was leider nicht funktioniert hat (falscher Befehl, falsche Stelle?).
Nachdem ich schon vergebens gesucht habe und keine Idee mehr habe wo oder wie ich es erreiche, dass die Hexadezimalzahlen schon beim Import als Text behandelt warden und so von Excel gar nicht erst umgewandelt werden, hoffe ich, dass mir hier jemand helfen kann.
Liebe Grüße
ich habe ein Makro geschrieben, das .csv Dateien importiert. Nun habe ich folgendes Problem: In den importierten Dateien stehen fast ausschließlich Hexadezimalzahlen, die ich mittels Makro weiterverarbeite und umrechne. Aus Zahlen wie beispielsweise 7E025 macht Excel automatisch 7,00E+25 oder 637E4 wird 6,37E06. In meinem Makro formatiere ich die entsprechenden Zellen zu Text und rechne sie dann in Dezimalzahlen um, Fälle wie die beschriebenen verfälschen allerdings meine Ergebnisse.
Hier ein Ausschnitt aus meinem aktuellen Code, von dem ich denke, dass dort die entsprechende Formatierung reinmüsste:
wbTarget.Worksheets(1).Name = "Summary"
wbTarget.Worksheets(1).Range("A:ZZ").Clear
For Each f In fso.GetFolder(csvpfad).Files
If LCase(fso.GetExtensionName(f.Name)) = "csv" Then
Workbooks.OpenText Filename:=f.Path
Set wbSource = ActiveWorkbook
On Error Resume Next
Set ws = wbTarget.Worksheets.Add(After:=wbTarget.Sheets(wbTarget.Sheets.count))
ws.Range("A:ZZ").Clear
str = Right(f.Path, 32)
str = Left(str, 22)
ws.Name = str
wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True
ws.Cells.NumberFormat = "@"
Call Evaluate
Call chart
wbSource.Worksheets(1).UsedRange.Copy Destination:=ws.Range("A1")
wbSource.Close False
End If
Next
ws.Cells.NumberFormat = "@"
Nachdem ich schon vergebens gesucht habe und keine Idee mehr habe wo oder wie ich es erreiche, dass die Hexadezimalzahlen schon beim Import als Text behandelt warden und so von Excel gar nicht erst umgewandelt werden, hoffe ich, dass mir hier jemand helfen kann.
Liebe Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 314494
Url: https://administrator.de/forum/csv-dateien-als-text-importieren-314494.html
Ausgedruckt am: 22.05.2025 um 15:05 Uhr
7 Kommentare
Neuester Kommentar

falsche Stelle?
Yes. You should place it before the conversion.Regards

Use a querytable instead of TextToColumns.

You can find multiple examples on the board, like this one:
Excel Makro um CSV Dateien auszuwerten und gesammelt anzuzeigen.
Excel Makro um CSV Dateien auszuwerten und gesammelt anzuzeigen.